使用 qpdf 线性化后 PDF 文件损坏,显然不是由 (La)TeX 输入造成的

使用 qpdf 线性化后 PDF 文件损坏,显然不是由 (La)TeX 输入造成的

编辑 3:我更新了标题,希望能让那些说此项目不合主题的人满意:我认为这篇文章对这个社区有价值的原因是答案可能不合主题(即 中的错误qpdf),但问题肯定不是。我花了相当多的时间摆弄似乎是罪魁祸首的 Beamer 框架,所以让我们希望这个项目可以为其他人节省精力。顺便说一句:我刚刚就这个qpdf问题向杰伊发送了一条消息,参考了这篇文章。

我有一个使用 生成的 PDF 文档pdflatex,我曾经qpdf对其进行过线性化。初始文档读取和检查都正常,而线性化文档的前几页已损坏,并在检查时产生错误:

(object 269 0, file position 307): expected n n obj

这是 Beamer 的演示文稿,包含很多屏幕截图。我以为我找到了导致问题的框架(取消注释可使问题消失),但该框架看起来没问题,甚至用下一帧的副本替换它也会产生同样的问题。而且它之前没有任何可疑之处。

使用 evince 显示线性化文档时,一开始会出现很多空白页,并且出现如下错误:

Syntax Error (4697): No font in show/space
Syntax Error: Unknown font tag 'F21'

关于如何解决这个问题或如何调试它,有什么想法吗?

对于那些愿意尝试线性化的人:这里是文档(警告:50MB下载):

http://www.offerman.com/private_secure_computing/AOC-Private_Secure_Computing-CyanogenMod-nonlin.pdf

(对链接进行了编辑,为线性化文档腾出了空间)

我还尝试了pdfopt,创建一个线性化文档,看起来还不错。qpdf但是,用 进行检查时,却出现了核心转储。

我想知道这是否是 qpdf 的问题而不是文档内部的问题......

编辑:我qpdf现在忽略核心转储;生成的文件pdfopt似乎可以在 Acrobat Reader 和 Firefox(均在 Linux 上)中使用,尽管 Firefox 直到文档完全下载后才会显示。需要调查一下。

编辑 2:刚刚检查了pdfsizeoptKeks 建议的工具(谢谢!)。它需要sam2ptif22pnm,可以找到 RPM 包,但也有pngout,它已经近十年没有针对 Linux 进行更新了。看起来像是仅限 Windows 的聚会,所以我暂时不讨论这个。

编辑 4:应用pdf2psps2pdf确实会创建一个较小的 PDF 文档,但它会让我丢失所有超链接和元数据。将报告gs...

相关内容