vue中将html代码转换成word文档并下载,其中生成的word文档需要带有分页符,该如何设置?

需求是将一串 html 代码转换成 word 文档并下载,其中生成的 word 文档需要有分页符。我设置的属性是 page-break-after: always,这样写生成的 pdf 后缀的文件可以带有分页符。但是 word 文件不行。有没有大神能指点一下

阅读 2.4k
1 个回答

这个需求最好还是后端来做,虽说现在前端也能实现,但是能提供的功能太 局限

首先是题主提到的 page-break-after: always;,MDN已经给出了答案 原文

Warning: This property has been replaced by the break-after property.

但是它的替代品,break-after 的兼容性依旧很遭

break-after兼容性

这两种方法,我都没有得到满意的结果,有传闻 Open XML 好使,我也尝试过

<w:p> 
    <w:r> 
        <w:br w:type="page"/>
    </w:r> 
</w:p>

依旧没有生成分页符(当然 open xml 确实强大,下面几个框架基本都是基于它开发的)

而且这块文档非常稀少,即便在github上,支持 html2docx 的 js 框架也寥寥无几,而且那几个实现的功能也很局限;但后端支持的就强大多了,java 的 Apache POI(也有 py 和 c# 版本) ,python 的 python-docx 都可以相对高度操作 docx

如果非要用 js 实现,那也是用 node.js 的 docxtemplater服务端 实现,而不是通过css的 page-break-after 或者 break-after 属性

参考地址
node.js docxtemplater
java apache POI
python python-docx

综上,基于兼容性和功能性考虑,都不建议在前端转换,这类需求应该交给后端在 服务端 转换

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题