2011-09-25 155 views
5

我一直无法找到关于同一主题的几篇文章的问题的答案,这就是为什么我会在这里问更具体的问题。wkhtmltopdf vs fpdf以及关于使用和性能的问题(HTML to PDF)

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

我读过,大多数人推荐wkhtmltopdf,因为它的性能,但对于小的1页文件它真的有区别vs fpdf?它是否真的减少了内存消耗?更快?

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

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

还有其他的选择吗?

谢谢你的帮助!

回答

9

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

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

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

+0

谢谢Indra,那是我正在寻找的答案,并且感谢您的信息/细节。 – Mike