Adobe Reader无法打开PDF / A3附件

时间:2016-09-20 20:30:26

标签: pdf adobe reader

我正在从头开始创建包含两个附件的PDF / A3文件。第一个附件是文本文件,第二个附件是xml文件。 Adobe PDF阅读器(或Acrobat)无法在某些配置中打开xml附件。其他读者如FoxIt或SumtraOrg可以打开所有附件。

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

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

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

www.subsystems.com/temp/RenamedAttachmentOpens.pdf:此文件与AttachmentDoesNotOpen具有相同的两个附件,但在嵌入之前重命名了xml附件文件。所有xml附件都包含相同的数据。因此,有时,只需在插入前重命名附件,Adobe Reader就可以打开附件。

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

如果我压缩PDF中的附件数据,我没有什么区别。

发生了什么事?任何帮助非常感谢。

1 个答案:

答案 0 :(得分:2)

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

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

名称条目指定为

  

名称数组(仅限根和叶节点;在叶节点中需要;当且仅当 孩子 不存在)应该是表格的数组

     

[ key 1 value 1 key 2 value 2 ... key n value n *]

     

其中每个 i 应为字符串,相应的 i 应为与之关联的对象那把钥匙。密钥应按词汇顺序排序,如下所述。

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

文件中的 EmbeddedFiles 名称树违反了密钥按字典顺序排序的要求。

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

这就是Adobe 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]
>>

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