我们打算使用wkhtmltopdf将html转换为pdf,但我们关注wkhtmltopdf的可伸缩性。有没有人有任何想法如何衡量?我们的网络应用程序可能会尝试转换成千上万(相对复杂)的html,所以对我们来说有一些想法很重要。有没有人得到这方面的信息?wkhtmltopdf的性能
回答
在我的经验中,性能取决于你的照片。它有很多大图片可以显着减慢。如果可能的话,我会试着用一个估计你的服务器的负载的测试来进行测试。有些人确实将它用于密集的操作,但我从来没有听说过成千上万的人。我想所有事情都取决于你的内容和资源。
以下报价是直客wkhtmltopdf mailing list:
我使用wkHtmlToPDF转换约6000封电子邮件一天PDF。这是所有 在4GB内存的四核服务器上完成的......它对于 来说已经足够了。
有几个性能提示,但我会建议在性能优化之前尝试一下你的瓶颈。例如,我记得有人说如果可能的话,直接从磁盘加载图像,而不是在其间安装网络服务器,可以大大加快图像加速速度。
编辑: 添加到这一点,我只是有一些有趣的玩wkhtmltopdf。目前在具有4Gb内存的英特尔迅驰2上,我生成57页内容(混合p,ul,表格)的PDF,约100张图像,并且toc始终持续7秒钟处理<。我还运行visual studio,浏览器,http服务器和其他各种可能会降低速度的软件。我直接使用stdin和stdout而不是文件。
编辑: 我没有尝试这样做,但如果你有联系CSS,尝试在HTML文件中嵌入它(记得之前和测试正确看到效果后做!)。这里的改进很可能取决于缓存和CSS的服务位置 - 如果每次从磁盘读取或禁止从scss重新生成,它可能非常慢,但是如果结果被web服务器缓存(我不认为wkhtmltopdf在实例之间缓存任何东西)它可能没有很大的影响。因人而异。
首先,你的问题是相当一般的;在询问任何项目的可扩展性时,需要考虑许多变量。显然,在一周内转换“数十万”HTML文件与期待在一天或一小时内完成这些操作之间存在差异。除此之外,“相对复杂”的HTML对其他人来说可能意味着不同的事情。这是说,我认为,因为我做了类似的事情,转换大约45万html文件,利用wkhtmltopdf;我会分享我的经验。
在这里是我的情形:
- 450000 HTML文件
-
文件
- 95%的长度为一页
- 通常含有2幅图像(相对路径,本地系统)
- 片状数据(有时包含嵌套表)
- 其他地方的简单标记(强,斜体,下划线等)
- 一个备用桌面PC
- 8GB RAM
- 2.4GHz的双核处理器
- 7200 HD
我用PHP编写一个简单的单线程脚本,遍历文件夹并将html文件路径传递给wkhtmltopdf。整个过程花费了大约2.5天的时间来转换所有文件,并且错误率极低。
我希望这可以让你了解在你的web应用程序中使用wkhtmltopdf可以期待什么。一些明显的改进将来自在更好的硬件上运行,但主要是利用多线程应用程序同时处理文件。
供参考,平均每个文档为480毫秒 – 2014-09-02 20:01:37
或每秒2页。 – xyres 2018-02-24 11:44:36
我们尝试在任何实现中使用wkhtmltopdf。我的对象是生成坐标点的巨大表格。通常我的pdf的容量= 500页
我们尝试使用wkhtmltopdf的端口到.net。结果是
- Pechkin - Pro: don't need other app. Contra: slow. 500 pages generated about 5 minutes
- PdfCodaxy - only contra: slow. Slower than pure wkhtmltopdf. Required installed wkhtmltopdf. Problems with non unicode text
- Nreco - only contra: slow. Slower than pure wkhtmltopdf. Required installed wkhtmltopdf. Incorrect unlock libs after use (for me)
我们尝试使用从C#代码调用的二进制wkhtmltopdf。
Pro: easy to use, faster that libs
Contra: need temporary files (cannot use Stream objects). Break with very huge (100MB+)html files as like as other libs
关于NReco.PdfGenerator,我不知道它如何比纯WkHtmlToPdf慢(内部它在单独的过程中调用WkHtmlToPdf.exe)。此外,它不需要安装WkHtmlToPdf:所有文件都嵌入到DLL中,并在错过时自动提取。 – 2014-09-10 16:12:00
wkhtmltopdf --print-media-type
正在快速发展。但是你放弃了正常的CSS样式。
这可能不是复杂的html页面导出的理想解决方案。但它对我来说很有效,因为我的html内容非常简单并且以表格形式。
测试在wkhtmltopdf 0.12.2.1
版本
- 1. 不好wkhtmltopdf的wicked_pdf和wkhtmltopdf的路径
- 2. wkhtmltopdf RuntimeError(wkhtmltopdf未知的位置)
- 3. wkhtmltopdf Engine Yard的
- 4. wkhtmltopdf segfaults
- 5. wkhtmltopdf笨
- 6. wkhtmltopdf不能在php脚本中工作
- 7. wkhtmltopdf不能从warick-pdf内部执行
- 8. 不能下载wkhtmltopdf加上在Plone
- 9. Wicked_pdf和wkhtmltopdf不能正确编码pdf
- 10. wkhtmltopdf - 启用智能收缩不缩小
- 11. wkhtmltopdf vs fpdf以及关于使用和性能的问题(HTML to PDF)
- 12. wkhtmltopdf问题
- 13. wkhtmltopdf windows错误
- 14. wkhtmltopdf pdf差异
- 15. shell_exec和wkhtmltopdf
- 16. Wkhtmltopdf SVG填充
- 17. codeigniter wkhtmltopdf介绍
- 18. wkhtmltopdf javascript延迟
- 19. wkhtmltopdf问题
- 20. 使用wkhtmltopdf
- 21. wkhtmltopdf offsetHeight差异
- 22. Wkhtmltopdf转换
- 23. 在wkhtmltopdf过程
- 24. Django - 多PDFTemplateResponse(wkhtmltopdf)
- 25. Knp Snappy Bundle - wkhtmltopdf
- 26. Ubuntu上的wkhtmltopdf编译
- 27. wkhtmltopdf的其他设置?
- 28. 在CentOS 6上的Wkhtmltopdf/Snappy
- 29. wkhtmltopdf +混合的光色
- 30. wkhtmltopdf每页上的标题
圆角CSS角落引起了我渲染由20X的时间增加。删除这些在相对简单的HTML页面上将我的渲染从〜6秒降低到〜0.3秒。例如。 'border-radius:8px;'和'border-top-left-radius:6px;' – 2016-09-01 01:08:43
在我的案例中,经过很多调查,我有从第三方获取QRcode的URL,这个第三方持有创建我的门票。 – shareef 2018-01-26 18:31:05