FPDF.php的文件大小比TCPDF.php小20倍?为什么?

时间:2011-09-15 19:58:35

标签: php pdf pdf-generation fpdf tcpdf

我知道有很多关于这两个的帖子,但我想我会解决一个明显的问题。我们的一位设计师最近给我发了一些TCPDF的文件,因为他的朋友说它“更好”。

过去我们使用FPDF来处理PHP中的所有PDF生成,但是我发现了一个巨大的明显区别:

fpdf.php的文件大小:46KB

tcpdf.php的文件大小:996 KB

注意:上面的文件大小是实际的php文件,而不是生成的PDF文件。

我真的没有太多的耐心坐下来看看所有两者之间的差异,但似乎不值得切换真正的巨大文件差异。 SO上的大多数人似乎都非常喜欢TCPDF,但是它给出了什么?

主要问题

为什么大小不同而且我应该担心我的服务器每天需要加载1MB文件数百或数千次,而50KB文件几乎完全相同?我在这里说我的PDF文件更大。 PHP脚本本身的文件大小为1MB到40Kb。

4 个答案:

答案 0 :(得分:5)

我避免使用TCPDF,因为它的许可证不友好(您必须在生成的PDF文档中保留链接+徽标)。 (注意:许可证似乎已更改,现在是标准LGPLv3:http://www.tcpdf.org/license.php

也就是说,更大文件大小的通常原因是嵌入字体。您可以通过几种不同的方式指定字体:

  • 指定它们并且不嵌入它们(最小尺寸,但文本可能无法正确显示)
  • 完全嵌入它们(FPDF已经支持这个)
  • 仅嵌入使用的字符部分

第一个选项会产生最小的文件 - 我想这就是您对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是一个非常原始的库,它可以做什么。