看来PDF :: API2不支持xref表的PDF 1.5(及更高版本)压缩.这种类型的文件更常见,因为默认情况下Acrobat 9和10会写入它们.另一种压缩方案是压缩对象流.
我收到以下错误:PDF文件格式错误的外部参照位于/opt/local/lib/perl5/site_perl/5.12.3/PDF/API2/Basic/PDF/File.pm第1140行.
任何Perl PDF模块是否支持使用压缩的XRef读取PDF?
CAM::PDF可以读取压缩的外部参照。文档说:
PDF 1.5 的文件格式得到了很好的支持,但“线性化”或“优化”输出格式除外,该模块可以读取但不能写入这些格式。
我没有使用过 CAM::PDF。但我查看了一下,来自 PDF::API2 后的 api 感觉很奇怪。这是更低级别的东西。但这两个库都有优点和缺点。
我们在工作中使用 PDF::API2,并要求我们的设计师在给我们提供东西时将其另存为 PDF v1.4。您还可以使用 Ghostscript 将它们转换为 PDF::API2 支持的 PDF 1.4。
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -o out.pdf in.pdf
Run Code Online (Sandbox Code Playgroud)