哪个是PHP最好的PDF-API?[关闭]


110

其中哪一个是PHP最佳的PDF-API?


6
这另一个问题似乎现在已从StackOverflow中删除。
rineez 2012年

我知道它的老问题,但我宁愿密度板,它可以处理任何复杂的HTML,但不包括已经由MDF在跟几个点mpdf1.com/mpdf/limitations
dev.meghraj

在这里您可以看到mPDF和TCPDF之间
Pmpr

Answers:


53

我个人更希望使用tcpdf,它是fpdf的增强和维护版本。


12
您没有指定原因-一个非常重要的原因是tcpdf中的Unicode支持,而fpdf完全缺乏。tcpdf仍在积极维护中。而且,它还有一个不错的面向对象体系结构。明智的话:fpdf基本上是被tcpdf取代的旧东西。
zanlok 2010年

2
tcpdf缺少字体嵌入和子设置(对于亚洲语言很重要)等重要功能。
velcrow

2
我刚刚检查了tcpdf网站,它似乎支持字体子集和嵌入。请参见SetFont方法的子集参数tcpdf.org/fonts.php
Nerrve

1
当我使用urdu unicode字体时,tcpdf出现了一些问题。
rineez

1
如果您用24k行代码“不错的OO”来调用一个类,那么您必须很高。查看我的FPDF重构版本以了解实际的OOP:github.com/bubach/PdfBuilder
Christoffer Bubach 2016年

39

mpdf网站上:“ mPDF是一个PHP类,可以从UTF-8编码的HTML生成PDF文件。它基于FPDF和HTML2FPDF,具有许多增强功能。”

在语言处理和UTF-8支持方面,mpdf优于FPDF。对于CJK支持,它不仅支持字体嵌入,还支持字体子集(因此CJK PDF不会过大)。TCPDF和FPDF在mpdf的UTF-8和Font支持上没有任何内容。从5.0版开始,它甚至附带了一些开源字体。


30

这只是fPDF在每个库最基本功能的性能方面如何与tcPDF相比的简要回顾。

速度测试

17.0366秒使用fPDF处理2000个PDF文件 79.5982秒使用tcPDF处理2000个PDF文件

文件大小检查(以字节为单位)

788 fPDF || 1,860吨PDF

所使用的代码尽可能相同,并且仅呈现没有文本的干净PDF文件。这也使用了截至2011年6月22日的每个库的最新版本。


5
有许多性能增强功能可以极大地提高TCPDF速度(我从创建单个文件的1分钟缩短
Dan Smart

1
这些“增强功能”将与FPDF一起很好地工作,并且在基准测试中并没有真正的帮助。TCPDF约为24000行代码,而FPDF约为2400行代码。
Christoffer Bubach

更新到@DanSmart的链接:tcpdf.org/docs/performances
艾伯特(Albert)

22

在html渲染方面,我发现mpdf比tcpdf更好。它可以更好地解析css样式,并创建看起来与原始html非常相似的pdf。

mpdf甚至支持css之类的东西,例如边界半径和渐变等。

我很惊讶地看到为什么将html转换为pdf时,为什么mpdf这么少被提及。

在此处查看示例http://www.mpdf1.com/mpdf/index.php?page=Examples

我发现它对设计发票,收据和简单打印等很有用。但是网站本身说,从mpdf生成的pdf往往更大。


2
链接断开。这可能是新链接:mpdf1.com/mpdf/index.php?page=Examples
Stefan

2019年8月更新:将此用作参考mpdf.github.io
CodeJunkie

不幸的是,mpdf似乎无法很好地处理大型表格单元。一旦内容超过页面,它就会开始按比例缩小,这使其对具有大表的任何项目均无用。除此之外; 它易于使用,性能良好且有据可查。
zumek


11

我个人更喜欢将dompdf用于简单的PDF页面,因为它非常快。您只需为其提供HTML源代码,它将生成所需的页面。

但是对于更复杂的设计,我更喜欢更经典的pdflib,它可以作为PHP的pecl使用。它可以更好地控制设计,并允许您执行更复杂的设计,例如像素完美的表格。


但是使用dompdf的一个缺点是,如果您想一次或循环创建多个pdf,则无法使用。
hmjha

5

http://sourceforge.net/projects/html2ps/,如果您需要css和3c则最好。

如果您可以在服务器上安装软件,建议您使用http://wkhtmltopdf.org/

还有一个使用wkhtmltopdf的drupal模块:)

PHP需要很多资源才能将pdf转换为pdf,恕我直言,php不是执行此操作的正确语言(如果您希望转换大量的Coverion或大文件)


我赞成wkhtmltopdf,但是特别是当使用外部转换器之类的方法时,PHP不能为速度的损失而负责。我认为从asp.net使用wkhtmltopdf或prince与从PHP中使用几乎一样快(尽管我使用asp.net)。当然,PHP并不具有.net的所有过程控制,但是我敢打赌,它对于大多数项目仍然足够快地工作
Joel Peltonen 2012年

4

Zend框架的Zend_Pdf确实很棒。就输出和复杂性的控制而言,它与pdflib相当,并且由于其纯PHP解决方案而更加可移植。就是说,它比pdflib慢并且使用更多的内存。Pecl模块总是比php解决方案更有效。

DOMPdf是快速制作pdf的最简单方法。就像Mike所说的那样,将其输入html并输出pdf。在后台,它可以选择使用r&ospdfpdflib作为呈现引擎。


1
Zend PDF具有重大问题(如果您将PNG嵌入透明胶片会导致性能问题)[ framework.zend.com/issues/browse/ZF-3392]。Zend PDF也是更改第三方PDF上的元数据的非常糟糕的工具,因为它无法处理接近完整PDF标准的任何内容,并且会崩溃。但是,如果您不需要这些功能,则Zend PDF可以很好地工作并且具有良好的UTF-8支持。
chrishiestand

3

我个人从PHP生成XSL:FO,并使用Apache FOP将其转换为PDF。这不是PHP的本地解决方案,也不是很有效,但即使您需要生成具有非常复杂的布局的PDF,它也能很好地工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.