hello ,有没有人用 freemarker 生成过 word,然后再把这个 word 转成 pdf 了 ,我用 openoffice 转 pdf 结果把输出的是一堆 xml

2017-09-29 08:45:18 +08:00
 lixueyu001

大家还有没有别的方案

6307 次点击
所在节点    Java
14 条回复
BBCCBB
2017-09-29 08:51:54 +08:00
我用 freemarker 生成过 word, 这种方法叫 wordxml 嘛, 其实不止 freemarker,用任何模板都可以实现,
不过没进一步转成 pdf,转成 pdf 得需要其他的库了吧
lixueyu001
2017-09-29 08:59:21 +08:00
@BBCCBB 对,word 我生成了 转 pdf 用的 jodconverter + openoffic 结果生成出来的 pdf 内容是 xml
kohos
2017-09-29 09:01:39 +08:00
java 可以用 jodconverter 调用 libreoffice 的进程把 word 文档转换成 pdf,但是系统需要安装了对应的字体才不会被默认字体代替
CoX
2017-09-29 09:03:05 +08:00
不介意付费方案的话,aspose.words 很省心。
lixueyu001
2017-09-29 09:03:25 +08:00
@kohos xml 类型的 word 也可以转成 pdf 吗, 我转出来的 pdf 内容是完整的 pdf
lixueyu001
2017-09-29 09:04:39 +08:00
@lixueyu001 说错了 转出来的 pdf 内容是完整的 xml
blackshadow
2017-09-29 09:14:57 +08:00
如果是在 linux 平台下, 只要你的 word 能被 libreoffice 打开阅读,完全可以用 java 跑 “ unoconv ” shell 命令把他转成 pdf,不过可能 word 的排版会乱。前提是装了 libreoffice
vuuv
2017-09-29 09:27:29 +08:00
@lixueyu001 #6 docx 其实是 zip 文件。里面有个 document.xml 保存着文本内容。你可以创建一个空 docx 文件,然后替换 zip 里面的 document.xml 试试。
你直接输入 xml 文件,就成了文本文档转 pdf,当然全文存储。
lixueyu001
2017-09-29 09:32:25 +08:00
@vuuv 多谢 ,我试一下
execute
2017-09-29 09:49:09 +08:00
我觉得如果你这个需求不是要求排版什么的经常改的话,可以试一试直接生成 PDF,减少中间那么多过程出错的几率
paranoiagu
2017-09-29 09:52:48 +08:00
@CoX aspose 也不能 100%,前段时间被这个搞死了。当然这已经是挺好的了。
lixueyu001
2017-09-29 15:04:10 +08:00
@vuuv 这样弄可以转 pdf 可是转出来的 pdf 样式全飞了 好不幸
lixueyu001
2017-09-29 18:48:24 +08:00
@CoX 的确好用 感谢
lixueyu001
2017-09-29 18:48:35 +08:00
谢谢大家!

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

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

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

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

© 2021 V2EX