Java教程

关于程序直接编辑输出格式为 word 文档的思考

本文主要是介绍关于程序直接编辑输出格式为 word 文档的思考,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

背景说明

  • 之前项目是使用程序将数据直接导出为 word 或者 excel 文档。
  • 是否可以改进此流程将数据直接以 HTML 的形式进行展示。
  • 然后再通过 HTML 转换为 word 或者 excel 等其他格式,对依赖库进行解耦,不使用程序对 office 的内容进行命令式的修改。
  • 我们编写的程序仅输出 HTML 内容,至于如何转换交给第三方标准进行批量转换安排。

关于此种想法可行性的依据

  1. web 程序展示内容的标准本身就是 HTML 而不是 WORD 或者 EXCEL 等其他什么玩意,输出HTML本身对web来说是最天然的方式。
  2. 办公文档也有自己对应的统一标准。

两个标准一对应,那么就应该有某种第三方工具已经解决过如何从 HTML 到 WORD,EXCEL,PDF 等的问题。
但是考虑到内网环境的封闭性,又不可安装外部程序来解决此问题。
所以问题在于使用的浏览器本身是否可导出 word 或者 excel,如果实在不行,则可以安装对应的依赖到程序中,通过程序的转换功能直接将 HTML 转换到对应的格式。

所以我认为整个流程应该如下
WebProgram --> HTML---> word、excel、pdf

优势

不再需要手动去编写每一套不同格式转换的流程,转word手写一次,转excel再手写一次,极其浪费时间,把注意力控制在 HTML 本身,使用通用工具直接转换。

应该有两种方式来处理用户对内容需要的问题

第一,用户直接点击需要打印的对象后,直接跳转到一个可打印格式的地址。右键,print,完成流程。
第二,用户需要相应的其他文档格式,点击对应的格式后直接下载到本地,此部分转换不应该由我们自己去编写如何转换的细节,应该由标准转标准的第三方库来处理。


早在2005年11月,AlistApart.com发表了一篇文章,介绍了他们如何只使用HTML和CSS来出版一本书。

<link rel="stylesheet" type="text/css" href="print.css" media="print" />

css 的可打印样式

@page {
   size: 7in 9.25in; // 页面大小
   margin: 27mm 16mm 27mm 16mm; // 页边距
}
div.chapter, div.appendix {
    page-break-after: always; // 分页符
}
div.titlepage {
  page: blank; // 命名页面
}
@page {
    size: 21cm 29.7cm;
    margin: 30mm 45mm 30mm 45mm;
     /* change the margins as you want them to be. */
}
这篇关于关于程序直接编辑输出格式为 word 文档的思考的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!