5

我无法在关于同一主题的几篇文章中找到我的问题的答案,这就是为什么我将在这里提出更具体的问题。

我的问题是关于 wkhtmltopdf 和 fpdf。我需要其中之一来创建 1 页的发票(真正的基本设计)和 1 页的报告(也是基本设计)所以非常小的 PDF 文档。

我已经读过大多数人推荐 wkhtmltopdf 是因为它的性能,但是对于小的 1 页文档,它真的与 fpdf 有区别吗?真的是内存消耗少吗?快点?

我知道这是一个愚蠢的问题,但我还需要知道 wkhtmltopdf 是否可以一次执行多次。我的意思是,如果我的网站上有 1000 位用户同时尝试将他们的发票保存为 PDF 格式?有没有限制,它是如何工作的?我知道 fpdf 是一个 php 类,所以我不必为此“担心”(我猜我只需要正确的 php.ini 配置)。

你有什么建议?对于小型 PDF 文档但性能较高,能够同时处理大量请求。

还有其他选择吗?

谢谢您的帮助!

4

1 回答 1

9

简短的回答是肯定的 - 您可以同时创建多个 wkhtmltopdf 实例,每个实例将其自己的 html 页面转换为 pdf。但是,wkhtmltopdf 作为操作系统进程运行,这意味着如果 1000 个用户同时查看他们的发票,则服务器中将产生 1000 个 wkhtmltopdf 进程,这可能不是您想要的。

另一方面,FPDF 作为 PHP 运行时内的 Web 服务器进程的一部分运行,不会有此限制。如果您要创建小额甚至大额发票,我建议您使用 FPDF,因为使用 FPDF 创建发票相当容易。您不仅可以对 PDF 页面布局进行大量控制,还可以在以后的维护/升级过程中节省时间。

我在使用 wkhtmltopdf 时遇到的问题之一是分页。Wkhtmltopdf 不会像您期望的那样破坏您的页面。例如,一行文本可能被分成两页——一行文本的上半部分出现在一页的末尾,而下半部分出现在下一页的开头。为了避免这种行为,您必须在您的 html 页面中明智地设置 css 属性 page-break-after 或 page-break-before,这有时会很困难,因为您不确定页面会在哪里中断。

于 2011-09-26T18:43:08.293 回答