【问题标题】:Adobe Reader does not open PDF/A3 attachmentsAdobe Reader 无法打开 PDF/A3 附件
【发布时间】:2017-01-28 21:59:59
【问题描述】:

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

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

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

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

www.subsystems.com/temp/RenamedAttachmentOpens.pdf :这个文件有两个附件,顺序和AttachmentDoesNotOpen一样,但是xml附件文件在嵌入前被重命名了。所有 xml 附件都包含相同的数据。所以有时,只需在插入前重命名附件,Adobe Reader 就可以打开附件。

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

如果我以 PDF 格式压缩附件数据,我并没有什么不同。

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

【问题讨论】:

    标签: pdf adobe reader


    【解决方案1】:

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

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

    名称条目被指定为

    Names 数组 (仅根节点和叶节点;叶节点中需要;当且仅当 儿童 不存在)应该是数组的形式

    [112 sub>value2keynvaluen*]

    其中每个 keyi 应该是一个字符串,对应的 valuei 应该是与之关联的对象那把钥匙。键应按词汇顺序排序,如下所述。

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

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

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

    这就是为什么 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]
    >>
    

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

    【讨论】:

    • 正确!谢谢你。我用一长串附件进行了测试,它们都可以正常打开。
    • 如果答案基本上解决了您的问题,请将其标记为已接受答案(单击左上角的勾号)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多