【发布时间】:2019-12-03 12:48:03
【问题描述】:
我有一个大约 100.000 行的长表,它是动态生成的(从技术上讲,它可以是 div)。 需要将此html数据导出为pdf。
我尝试过使用 html2pdf.js。但是当它超过 5000 行时,它开始工作非常缓慢,并且导出的 pdf 大小很大。我认为这是由于将 html 保存为图像然后将其插入到文档中。
已经尝试过html2pdf.php 超过 500 行也运行缓慢已经有问题,但文档的大小非常好。
用 node js 尝试过 html-pdf。工作速度比之前的 2 快得多,但有一个限制。 Node js脚本在服务器上,当有多个客户端时,性能分布在所有客户端之间,性能急剧下降。
我正在寻找可以在可接受的时间内将很长的 html 表格转换为 pdf 文档的库。
我的需求可以描述为:
1) 脚本可以在浏览器(Javascript)中运行,并且应该足够快,以免让用户等待很长时间。
2) 脚本可以使用PHP/Node js在服务器上运行,但这里应该考虑到多个用户可以同时请求pdf。
3) 可能还有一些其他的解决方案,例如 Java 或 Python,它们将在 Linux 服务器上运行,可以很容易地从浏览器触发?
选项 1 或 2 是最可取的。
谢谢!
【问题讨论】:
-
“当有多个客户端时,性能分布在所有客户端之间” - 是的,还有什么可能发生?您的服务器不会因为第二个请求进来而神奇地克隆自己。
-
我对@987654321@ 非常满意,请检查一下,以防性能问题,您只能尝试不再生成实际相同的列表,如果没有任何变化则加载副本
-
是否需要多走一步数据→HTML→PDF...?不能直接将数据输出为PDF吗?
-
你会考虑“一代”排队吗?用户请求 PDF → 请求进入队列 → 服务器处理队列操作 → 生成 PDF 时发送给用户的带有下载链接的电子邮件。
-
在客户端处理的情况下,最好立即下载 pdf 文件。我也尝试使用原生方法
printDiv.print();,但花了很多时间。
标签: javascript php html pdf