我的小组一直在使用itext-sharp库和C#/ .NET来生成自定义的动态PDF。在大多数情况下,这个过程非常适合我们的需求。我们在开发/测试期间遇到的一个问题是布局问题,这可能导致PDF无法在Adobe Reader中正确打开/呈现,尤其是。较新版本的Acrobat / Reader。
文档将正确打开前X页的显示。但如果出现错误,则不会显示文档中的其余页面。
如上所述,我们通常能够使用C#/ iText代码将此问题跟踪到布局类型问题。我们最终通过使用猜测和检查方法或分而治之来找到错误。它有效,但它不是解决这些问题的最佳方法。
我想知道是否有任何可用的工具可以加快验证PDF文档的过程,并有助于指出文档中的错误?
答案 0 :(得分:18)
“最便宜”(同时又相当可靠!)方式是使用Ghostscript。让Ghostscript解释PDF并查看它给出的返回值。如果没有问题,PDF文件应该没问题。在Windows上:
gswin32c.exe ^
-o nul
-sDEVICE=nullpage ^
d:/path/to/file.pdf
nullpage
输出设备不会创建任何新文件。但是Ghostscript会告诉stdout / stderr它是否遇到错误。检查%errorlevel%
伪环境变量的内容。 - 在Linux上:
gs \
-o /dev/null \
-sDEVICE=nullpage \
/path/to/file.pdf
(使用echo $?
检查返回值是否为“无问题”的0
值。)
如果出现错误,Ghostscript会发布一些可能对您有所帮助的信息。在任何情况下,至少你可以肯定地识别那些有 NO 问题的文件:如果Ghostscript可以处理它们,Acrobat(Reader)也不会有渲染问题。
答案 1 :(得分:13)
验证PDF文件可能是一项非常棘手的任务 - 主要是因为正确执行此操作所需的工具非常昂贵。
Acrobat有一个工具(高级>预检> PDF分析>报告PDF语法问题),可以扫描PDF以查找任何语法问题,但无法以编程方式访问该工具。
Appligent有一个名为pdfHarmmony的工具,由Adobe的PDF库提供支持,可以通过编程方式访问,但价格非常昂贵(2500美元以上)。如果你能负担得起,这个选项会给你最好的结果。
还有另一种选择3-Heights PDF Analysis & Repair,我不知道它的质量是什么,但同样昂贵。
SourceForge上的这个PDF Validator tool可能会让您感兴趣,但是,它只分析文档结构而不是内容本身,因此不会拾取损坏的图像或内容流。
不幸的是,由于难以详细分析PDF文件,实际上没有任何可以正确执行的免费工具,但我认为检查文档结构的工具总比没有好。