我查看了这两个文件,差异确实主要与字体有关。我保存了用 Adobe Acrobat XI 优化的两个文件——这(可以做)做了很多优化,但最重要的区别(对于文件 1)来自字体子集:
文件 1:前 1.2 MB / 后 253 KB 文件 2:前 4.7 MB / 后 3.7 MB
您的文件 2 是使用 FrameMaker 创建的,它通常会生成非常干净的 PDF(即使在这种情况下使用了非常旧的 Adobe Acrobat Distiller 版本),您的文件 1 是由 DomPDF 生成的,显然没有嵌入字体的子集。
如果您从 Acrobat 中查看第一个文件的空间审计报告:
您可以看到字体占据了文件中接近 96% 的空间。因此,对这个文件中使用的字体进行子集化基本上是您缩小它的唯一选择。
不同的库或应用程序有不同的选项来启用子集。专门针对 DOMPDF 使用选项 DOMPDF_ENABLE_FONTSUBSETTING 在它创建的 PDF 文件中启用字体子集:
def("DOMPDF_ENABLE_FONTSUBSETTING", true);
然后,这只会嵌入 PDF 文件中实际使用的那些字符,通常(取决于文本量和实际字体)会创建更小的文件。
(从评论中添加了DOMPDF解决方案,使答案更完整)