关于程序直接编辑输出格式为 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. */
}

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些