Adobe Reader 无法打开 PDF/A3 个附件

Adobe Reader does not open PDF/A3 attachments

我正在创建 PDF/A3 个包含两个附件的文件。第一个附件是文本文件,第二个附件是 xml 文件。 Adobe PDF reader(或 Acrobat)无法在某些配置下打开 xml 附件。 FoxIt 或 SumtraOrg 等其他 reader 可以打开所有附件。

为了测试,我创建了 3 个空白文件。以下是文件:

www.subsystems.com/temp/AttachmentOpens.pdf : Adob​​e Reader 正确打开 xml 附件。

www.subsystems.com/temp/AttachmentDoesNotOpen.pdf : Adob​​e reader 无法打开或保存 xml 附件,但它可以搜索附件中的文本。此文件中的 xml 附件与第一个文件中的附件相同,但插入 PDF 文件的顺序相反。这似乎是一个因素。

www.subsystems.com/temp/RenamedAttachmentOpens.pdf : 此文件与 AttachmentDoesNotOpen 具有相同顺序的两个附件,但 xml 附件文件在嵌入前已重命名。所有 xml 个附件都包含相同的数据。所以有时,只需在插入前重命名附件即可让 Adob​​e Reader 能够打开附件。

我在附加 PDF 文件时注意到了相同的行为。

如果我将附件数据压缩为 PDF,我也没有什么不同。

这是怎么回事?非常感谢任何帮助。

在您的文件“AttachmentDoesNotOpen.pdf”中,EmbeddedFiles 名称树如下所示:

<<
    /Names [(test.txt)8 0 R (help.xml)10 0 R]
>>

名称条目被指定为

Names array (Root and leaf nodes only; required in leaf nodes; present in the root node if and only if Kids is not present) Shall be an array of the form

[key1 value1 key2 value2keyn valuen*]

where each keyi shall be a string and the corresponding valuei shall be the object associated with that key. The keys shall be sorted in lexical order, as described below.

(ISO 32000-1,Table 36 – 名称树节点字典中的条目)

您文件中的 EmbeddedFiles 名称树违反了键应按词法顺序排序的要求。

因此,在 Names 数组中查找“help.xml”条目的代码可能会在看到“test.txt”条目后立即退出因此无法找到“help.xml”条目。为该名称树的所有条目构建 table 的代码可以简单地迭代整个数组并忽略顺序。

这就是 Adob​​e Reader 向您显示列表中的“help.xml”条目但无法打开它的原因。

其他文件

在您的文件“AttachmentOpens.pdf”中,EmbeddedFiles 名称树如下所示:

<<
    /Names [(help.xml)8 0 R (test.txt)10 0 R]
>>

并且在您的文件“RenamedAttachmentOpens.pdf”中,EmbeddedFiles 名称树如下所示:

<<
    /Names [(test.txt)8 0 R (test3.xml)10 0 R]
>>

在这两种情况下,键都按词汇顺序排序。