大家有没有比较好的 HTML 导出 Word 的方案?

2017-01-09 11:09:02 +08:00
 lvwzhen
需要使用PHP将 HTML 模版到处 Word 文件,需要保留中文字体、文档格式,谢谢了。
7821 次点击
所在节点    问与答
29 条回复
scnace
2017-01-09 11:16:59 +08:00
我们上次试了好几个 会有乱码 OR 格式错误 所以我们自己根据 WordXML 撸了一个 就是撸了个类似 SDK 的东西 把各种样式封装下就可以了 …
springmarker
2017-01-09 11:20:10 +08:00
先做好 word 的模板,然后导出 html 格式,然后 replace 需要填写的内容
Tink
2017-01-09 11:27:34 +08:00
我当时用过 phpoffice , 还挺好用的
murmur
2017-01-09 11:34:23 +08:00
没有也不可能有,随便打开一个页面,按下 ctrl-p ,看显示的什么乱七八糟的东西,就这个页面就可以
如果连页面本身都没有单独设置打印格式,那自己转换不是更难?强行把宽屏页面缩到一张 a4 纸,笨想也不可能
lvwzhen
2017-01-09 11:35:53 +08:00
@scnace Word 的格式太难搞了,我先是 HTML 导出 PDF ,再从 PDF 转 Word 。 PDF 的格式好掌握,到了 Word 完全是乱的。
lvwzhen
2017-01-09 11:37:01 +08:00
@murmur HTMl 模版是单独写的,不是其他网站,现在就是 HTML 转 Word 的格式问题很难解决。
lvwzhen
2017-01-09 11:38:02 +08:00
@springmarker 最后的 replace 步骤需要怎么实施呢,还请赐教,谢谢 😊
lvwzhen
2017-01-09 11:39:13 +08:00
@Tink 现在也在用 PHPWord ,还有许多格式问题没解决,还问下大家有没有比较成熟的方案,谢谢。
springmarker
2017-01-09 11:47:21 +08:00
@lvwzhen php 没有替换字符串的方法吗
springmarker
2017-01-09 11:51:32 +08:00
哦,对了, office 是识别 html 的格式的,你直接把 html 格式后缀改成 docx 就可以,这个方法并不完美,其实导出为 xml 格式再 replace 也可以
springmarker
2017-01-09 12:01:02 +08:00
不知道你的业务是需要不固定样式的页面导出 word 还是固定的模板导出 word ,我的方法只适用于后者
lvwzhen
2017-01-09 12:02:42 +08:00
@springmarker 还真的可以,就是格式需要稍微微调一下,我之前还没想到。现在试下 html 和 xml 这两个方案看那个最合适了,谢谢大家了 @scnace @Tink
lygmqkl
2017-01-09 13:45:37 +08:00
@springmarker 直接 a.html 改 a.docx ,稍微编辑下保存,直接报错,请问知道什么原因吗


该网页将用以组织支持文件的文件夹已经保留为在当前位置上使用
springmarker
2017-01-09 14:06:08 +08:00
@lygmqkl 随便一个 html 改后缀肯定不行啊,先在 word 里面排好模板,需要填入的地方做标记,然后用 office 导出 html 或者 xml ,推荐 xml ,然后替换标记,其实这不是个好办法,相当于曲线救国,很容易出错,而且有图片什么的很麻烦,当时我也是很苦恼啊,七撞八撞搞得勉强能看,但是并不完美,第三方都找不到, wps 也不是也不能完美支持 office 吗,这样的需求我觉得还是很恶心的,尽量用 pdf 吧
murmur
2017-01-09 14:12:58 +08:00
xml->doc 这个思路是对的,但是 xml 的模板必须用 word 生成, word 是可以直接保存为 xml 的,然后这个 word xml 再另存为标准 doc 就 ok ,这个是格式损失最少的
何况、、、这个 xml 编辑起来也不那么容易,不过能转换就很好了
lvwzhen
2017-01-09 14:48:48 +08:00
@lygmqkl .html 改为 .doc,再另存为.docx 是可以正常编辑保存的。但是太麻烦了,我现在是使用 XML to doc ,基本是无损转换,内容编辑 XML 就可以。
lygmqkl
2017-01-09 15:11:54 +08:00
@springmarker pdf 库有比 mpdf 更好的吗?
aitaii
2017-01-09 16:04:45 +08:00
做过 java 的,做一个 word demo 样式基本不会变,保存为 xml 文件,替换 xml 文件的关键内容,保存为 doc 格式的, docx 格式略微多了一些。
aitaii
2017-01-09 16:05:24 +08:00
图片按照格式转为 base64 的就可以了。
lvwzhen
2017-01-09 16:28:24 +08:00
@aitaii 现在就是用这个方法做的,效果还挺好的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/333236

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX