我正在使用 canvas.linkURL() 将 HTTP 链接添加到 ReportLab 生成的 PDF 中的文本。对于 100 页的文档,每页大约有 10 个,因此总共有 1000 个链接。
一切正常,但是当包含链接时,磁盘上的文件大小会爆炸 - 从大约 100KB 到超过 1MB。
检查 PDF,链接“%'Annot.NUMBER38':class PDFDictionary”的结构与每个链接的 /Contents 引用的匹配结构“%'R1351':class PDFStream”相匹配。
从 PDF 中提取数据显示大约有 0.4MB 的“Annot.NUMBERnn”和 0.6MB 的 PDFStream 对象。
在对http://code.google.com/p/pdfsizeopt/进行了一些实验之后,我通常能够将 PDF 的大小减少 50% 以上。似乎实现这一目标的关键步骤是将 PDF 1.4 转换为 1.5。这可能表明 PDF 1.4 在创建 http:// 超链接方面效率特别低吗?
由于各种原因,我需要继续生成 PDF 1.4(主要是 PDF/A-1)。
这是 PDF 格式本身的基本问题,还是可以以更有效的方式创建超链接?