有什么 HTML 转 PDF 的开源工具推荐吗?

307 天前
 deacyn
以前使用的工具是 wkhrmltopdf

工具希望能够运行在服务器上

各位公司都在用什么工具呢
3171 次点击
所在节点    程序员
30 条回复
harrozze
307 天前
python3-xhtml2pdf/stable 0.2.5-3 all
A library for converting HTML into PDFs using ReportLab (Python 3 module)
deacyn
307 天前
@harrozze 支持 css3 和 js es6 语法吗?
dcsuibian
307 天前
puppeteer ?
deacyn
307 天前
@dcsuibian 不知道是使用方式不对还是怎么着,发现使用这个生成的 pdf 比 wkhtmltopdf 工具大一倍,尤其是在有图片的时候。
justNoBody
307 天前
chrome 无头模式最佳

google-chrome --headless --disable-gpu --print-to-pdf=$output_file $html_file
qsnow6
307 天前
调用 Chrome 的打印功能就行
learningman
307 天前
你要支持 js ,那最好还是无头浏览器
deacyn
307 天前
@justNoBody 之前测试了一下 puppeteer ,发现生成的文件太大了,有什么办法解决吧吗
jifengg
307 天前
前段时间浅浅研究过这俩,wkhtmltopdf 貌似有些支持不是很好,后来用 chrome headless 出来的都挺好,也支持 js 渲染。
不过最好是用 puppeteer ,命令行的方式有些参数不生效。

至于楼主说的体积大一倍,建议楼主可以看看两个 pdf 放大之后,图片清晰度是否一样。如果不一样可以看看哪里有设置 dpi 之类的。
joooooker21
307 天前
wkhtmltopdf 也可以运行在服务器上
jiejia
307 天前
PhantomMagick
NealDing
307 天前
@deacyn puppeteer 应该是目前最强大易用的了,如果有大文件的问题建议把生成功能模块建个 repo 发一下,大家一起帮忙看看
dcdlove
307 天前
只要系统安装有谷歌浏览器就可以 --print-to-pdf-no-header 隐藏打印的页头脚
google-chrome --headless --disable-gpu --print-to-pdf-no-header --print-to-pdf=test.pdf
https://www.v2ex.com/t/954703#reply10
dcdlove
307 天前
@deacyn puppeteer 最后调用的还是 chrome 的无头模式 只是定死了一个浏览器内核 所以最好还是直接调用 chrome 输出 最好,想用那个版本就装那个版本 服务端也能调用
C:\Program Files\Google\Chrome\Application\chrome.exe --headless --print-to-pdf-no-header --print-to-pdf="test.pdf" --disable-gpu "http://www.baidu.com"
leroy20317
307 天前
生成 pdf 我用的也是 puppeteer 就是在服务器中运行时间长了之后内存占用一直在增加 不知道是配置有问题还是这个本身就这样 只能定时去重启服务
Eureka0007
307 天前
forQ
307 天前
playwright
yjd
307 天前
@dcdlove 这种转一个要创建一次进程,相当耗资源。内存回收不及时,就会像上面说的持续增长。
dcdlove
307 天前
@yjd 但是生产速度真的刚刚的几乎没延迟,目前服务器通过 cmd 调用完成就结束释放没出现内存无法回收的情况
Breacher
307 天前
前段时间刚做了个 HTML 生成 PDF 发票的功能,调研了 wkhrmltopdf ,发现它好久没更新了,有些 JS 特性它不支持。最后用了 Gotenburg ,一个打包了无头 Chrome 和常用字体的开箱即用的方案。

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

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

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

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

© 2021 V2EX