繁体   English   中英

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

[英]FPDF.php is ~20 times smaller filesize than TCPDF.php? Why?

我知道有很多关于这两个的帖子,但是我认为我要解决一个明显的问题。 我们的一位设计师最近向我发送了一些文件,其中已经包含TCPDF,因为他的一个朋友说它“更好”。

过去,我们已经将FPDF用于PHP中的所有PDF生成,但是马上我就注意到了巨大的明显区别:

fpdf.php的文件大小:46KB

tcpdf.php的文件大小:996 KB

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

我真的没有太多耐心来坐下来看看两者之间的所有差异,但是对于巨大的文件差异而言,似乎真的不值得进行切换。 SO上的大多数内容似乎真的很喜欢TCPDF,但有什么用?

主要问题

为什么大小会有所不同?我应该担心服务器每天必须加载数百次或数千次1MB文件,而几乎完成相同工作的50KB文件却又要担心吗? 并不是说我的PDF文件更大。 PHP脚本本身的文件大小为1MB至40Kb。

我避免使用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等)的帮助相反。 在论坛上花了两周的时间,他才承认TCPDF不支持部分字体嵌入。 但是,对我而言,许​​可证才是真正的破坏因素。

因此,回答您的问题:您可以通过不嵌入字体来使TCPDF生成较小的文件。 但是,许可证应该是切换许可证的主要原因。 :)

我花了一点时间比较两个来源。

fpdf几乎没有评论。

tcpdf有更多的方法,但也有完整的类似phpDoc的注释块,其中每个参数和用法的说明以及html格式的示例均位于每个方法和属性之前。 我会说这是文件大的主要原因。

请注意,TCPDF许可证上的句子“您无法删除任何TCPDF版权声明或来自生成的PDF文档的链接”,仅指不可见的链接(元数据),而不是标题徽标和默认示例中显示的链接。 。 这意味着使用TCPDF生成的文档不包含任何干扰文档布局的可见工件。

然后,为回答您的问题,文档大小取决于您所使用的新功能,而这些新功能在FPDF中不存在。 如果不需要某些功能并且想要减小文档的大小,请禁用Unicode,仅使用helvetica之类的核心字体,并在http://www.tcpdf.org网站上应用其他技巧。

TCPDF比FPDF包含数百个功能,这就是为什么它更大(更好)的原因。 与什么是TCPDF以及它可以做什么相比,FPDF是一个非常原始的库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM