![如何分析PDF文件是否有效?](https://linux22.com/image/1307118/%E5%A6%82%E4%BD%95%E5%88%86%E6%9E%90PDF%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E6%9C%89%E6%95%88%EF%BC%9F.png)
我在使用 Office2007 生成的 PDF 文件时遇到了问题。您可以阅读有关它的全部内容这里。
TL;DR:使用“另存为 PDF/XPS...”插件从 PPTX 文件生成的一些 PDF 仅部分呈现,并在 Adobe Reader/Acrobat Pro 中触发错误消息。
在尝试了@harrymc 对我的另一个问题的回答中列出的许多其他选项,并得到了遇到同样问题的其他用户的确认后,我决定让微软支持人员介入,但这相当昂贵(299 欧元 + 税,只有当支持事件发现了微软产品中的错误,并且支持人员确定这确实是一个错误时,您才能获得退款)。
我现在的问题是,在第一次回电中,微软技术支持人员表示,如果只有 Adobe Reader/Acrobat 无法处理该文件,而 Foxit 或 Chrome 可以正确渲染,那么这是 Adobe 的问题,而不是他们的问题。所以现在看来我需要能够证明生成的 PDF 实际上是无效的。
在我的另一个问题中,@harrymc 提供了 GhostScript 的错误消息,这表明 PDF 中确实存在错误。但我真的可以将其作为证据吗?是否有类似官方 PDF 验证器的东西可以准确指出我的文件出了什么问题?或者 Adobe 有吗?
作为参考,以下是导致这些问题的一个文件。
更新:
MS 技术支持人员已经能够重现该问题(甚至在他们自己的 XPS 查看器中),并且他们同意这是一个错误(尽管他们称之为“限制”,必须记住这一点),所以我不必为该事件付费。他们会将其转交给开发人员,但不能保证修复并建议升级到 Office 2010。我必须看看我的大学是否会同意这一点 - 我们目前的标准是 Office 2007,但我知道我的许可证在 2010 中也有效。
答案1
来自 Adobe 验证器(Acrobat X Pro 中的预检):
我不知道您还能得到多少官方信息。这发生在 Preflight 中的“报告 PDF 语法问题”上。当我尝试测试 PDF/A 有效性时也发生了同样的事情。报告过程中止而不是继续,就像它对小错误所做的那样。Adobe 论坛上关于此错误的众多帖子中没有回复。
在 Notepad++ 中打开文件并删除每个流(stream
包括所有流endstream
)会导致出现空白文件,该文件在打开时不会报告错误,并且 Preflight 中只有一些小语法错误(与丢失的流有关)。显然,其中一个流中/关于某个流存在无效内容,可能是无效的控制字符或其他内容。我不太了解 PDF 格式。
此外,使用内置工具创建 PDF 可在 PowerPoint 2010 中的演示文稿中完美运行。似乎只有 2007 SP3 受到影响 - 正如您所发现的,以前的版本和更新的版本均未受到影响。根据 Microsoft 的政策,这可能会或可能不会保证修复错误。可能是因为 Adobe 不完全支持 2007 SP3 版本中用于图像的编码。
您提供的文件是否在导出时勾选了“符合 ISO 19005-1 标准 (PDF/A)”选项?如果没有,您能提供一个勾选了的文件吗?
除非文件以符合标准的格式导出(默认情况下未选中该选项!),否则它不一定是“错误”,除非他们明确表示 Adobe Acrobat/Reader 应该能够打开他们的 PDF - 尤其是当某些程序可以打开时。您可能需要为退款而苦苦挣扎。
答案2
在花费 360 欧元之前,我想检查一下该问题是否已在 Office 2010 中得到修复。
如果你希望得到专家的回答,我建议将问题发布到GhostScript Bugzilla。您可以简单地询问他们为什么不接受由 Office 2007 创建的合法 PDF。他们可能会确切地告诉您 PDF 错误的原因,甚至可能告诉您如何修复它。
这将要求您开设一个 Bugzilla 帐户。
我已经确认该问题仍然存在于最新的 GhostScript 版本 9.05 上。您可以在错误报告中附上下图: