我知道有很多关于这两个的帖子,但我想我会解决一个明显的问题。我们的一位设计师最近给我发了一些TCPDF的文件,因为他的朋友说它“更好”。
过去我们使用FPDF来处理PHP中的所有PDF生成,但是我发现了一个巨大的明显区别:
fpdf.php的文件大小:46KB
tcpdf.php的文件大小:996 KB
注意:上面的文件大小是实际的php文件,而不是生成的PDF文件。
我真的没有太多的耐心坐下来看看所有两者之间的差异,但似乎不值得切换真正的巨大文件差异。 SO上的大多数人似乎都非常喜欢TCPDF,但是它给出了什么?
为什么大小不同而且我应该担心我的服务器每天需要加载1MB文件数百或数千次,而50KB文件几乎完全相同?我不在这里说我的PDF文件更大。 PHP脚本本身的文件大小为1MB到40Kb。
答案 0 :(得分:5)
我避免使用TCPDF,因为它的许可证不友好(您必须在生成的PDF文档中保留链接+徽标)。 (注意:许可证似乎已更改,现在是标准LGPLv3:http://www.tcpdf.org/license.php)
也就是说,更大文件大小的通常原因是嵌入字体。您可以通过几种不同的方式指定字体:
第一个选项会产生最小的文件 - 我想这就是您对FPDF的使用。请注意,您的PDF可能在不同系统上显示不同。
第二个选项会生成最大的文件。由于字体存在(理论上 - 我没有经验)可以编辑文件并以相同的字体添加文本。
第三个选项是大多数情况下应该使用的选项,但是,它最难在库中实现而且核心FPDF不支持它(但TFPDF却不支持)。它只嵌入使用的字形,因此它可以生成非常小的跨平台PDF。
几年前TCPDF不支持第三种选择(但是,现在可能已经改变了)。正如我所提到的,它在核心FPDF中也不受支持 - 但是,MPDF和TFPDF(我已经在许多项目中成功使用)支持它。
另一方面,我没有使用TCPDF的另一个原因是先生的不友好和无助的态度。 Asani(开发人员)与FPDF / MPDF / TFPDF社区(Oliver,Ian,...)对比FPDF论坛。在他承认TCPDF不支持部分字体嵌入之前,它在论坛上花了2周的时间。但是,许可证对我来说是一个真正的交易破坏者。
所以,回答你的问题:你可以通过不嵌入字体使TCPDF产生更小的文件。但许可证应该是转换许可证的主要原因。 :)
答案 1 :(得分:4)
我花了一个时间来比较这两个来源。
fpdf几乎没有评论。
tcpdf还有一些方法,但也有完整的phpDoc注释块,每个方法和属性之前都会以html格式解释每个参数和用法以及示例。我会说这是文件大小的主要原因。
答案 2 :(得分:0)
请注意,在TCPDF许可证上,“您无法删除任何TCPDF版权声明或从生成的PDF文档链接”这一句子仅指一个INVISIBLE链接(元数据),而不是标题徽标和链接上显示的链接默认示例。 这意味着使用TCPDF生成的文档不包含任何干扰文档布局的可见工件。
然后,要回答您的问题,文档大小取决于您使用的FPDF中不存在的新功能。如果您不需要某些功能并希望减小文档大小,请禁用Unicode,仅使用helvetica等核心字体,并在http://www.tcpdf.org网站上应用其他提示。
答案 3 :(得分:-1)
TCPDF包含比FPDF更多的功能,这就是为什么它更大(更好)。 与TCPDF相比,FPDF是一个非常原始的库,它可以做什么。