加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

PDF根对象出错

发布时间:2020-12-13 23:01:24 所属栏目:Linux 来源:网络整理
导读:此PDF根对象将使Adobe Reader失败. Foxit,Nuance,Evince,SumatraPDF等其他PDF阅读器将毫无问题地打开PDF文件.问题是/ Dests要求间接对象(PDF参考).删除/ Dests 将获得Adobe Reader打开文件,但打印失败.所有其他读者在没有/ Dests的情况下工作正常.有关如何更
此PDF根对象将使Adobe Reader失败. Foxit,Nuance,Evince,SumatraPDF等其他PDF阅读器将毫无问题地打开PDF文件.问题是/ Dests要求间接对象(PDF参考).删除/ Dests<< >>将获得Adobe Reader打开文件,但打印失败.所有其他读者在没有/ Dests的情况下工作正常.有关如何更正以下根对象示例中的语法的任何想法?

17 0 obj
  <<
    /Type /Catalog
    /Pages 2 0 R
    /Outlines 15 0 R
    /PageMode /USEOutlines
    /Dests <<
             /__WKANCHOR_2 8 0 R
             /#8d#c2#ca#ebs#e4#60#00#9e#97l#b9#80#1b#cb#86sQR#83 9 0 R
           >>
  >>
  endobj

解决方法

好的,找了几分钟……

所以我注意到的第一件事是*所有其他读者确实可以打开文件(我只测试了一些).但是这些确实吐了很多很多警告和错误消息……(试试Ghostscript:gs virkerikke.pdf,或者试试evince …)PDF中至少有一个损坏的外部参照表(或者至少这个)是投诉之一).

xpdf抱怨:

[....]
Error: Invalid XRef entry
Error: Invalid XRef entry
Error: Invalid XRef entry
Error (157): Unterminated string
Error (159): End of file inside dictionary

gv抱怨:

Warning: translation table syntax error: Unknown keysym name:  apLineDel
Warning: ... found while parsing '<Key>apLineDel:   GV_Page(page+5)     '
Warning: String to TranslationTable conversion encountered errors

evince抱怨:

[....]
Error: Invalid XRef entry
Error: Invalid XRef entry
Error: Invalid XRef entry
Error (157): Unterminated string
Error (159): End of file inside dictionary
Error (157): Unterminated string
Error (159): End of file inside dictionary
Error (157): Unterminated string
Error (159): End of file inside dictionary
[....]
Error (1918): Unterminated string
Error (1920): End of file inside dictionary

gs抱怨:

**** Warning: File has a corrupted %%EOF marker,or garbage after %%EOF.

mupdf抱怨:

+ pdf/pdf_xref.c:60: pdf_read_start_xref(): cannot find startxref
| pdf/pdf_xref.c:477: pdf_load_xref(): cannot read startxref
 pdf/pdf_xref.c:532: pdf_open_xref_with_stream(): trying to repair
warning: ignoring invalid character in hex string: '!'
warning: ignoring invalid character in hex string: 'O'
warning: ignoring invalid character in hex string: 'T'
warning: ignoring invalid character in hex string: 'Y'
[....]

qpdf –qdf抱怨:

virkerikke.pdf (object 17 0,file position 2234): null character not allowed in name token

好的,现在在文本编辑器中打开这个糟糕的文件,尝试修复它.我发现这个文件(大小为32746字节)有一些严重的语法问题:

> %% EOF之后的垃圾:在%% EOF标记之后,有一个完整且语法正确的HTML文件粘贴到PDF,标题为“Wkhtmltopdf – Teknisk regelverk”.它的大小是11878字节.删除此部分,您将获得一个“更好”的PDF,其大小仅为20868字节…虽然Acrobat / Adob??e Reader在保存编辑后的文件后仍然无法打开它.
>名称标记中的字符无效:这位于名称标记内/#8d#c2 #ca#ebs#e4#60#00#9e#97l#b9#80#1b#cb#86sQR#83.它在此文件中显示为2x.在我的第一个评论中,我告诉过你这个密钥对我来说看起来不值得信赖,因为它只包含很少的ASCII字符,但是包含很多二进制字节(使用它们的十六进制表示.)(我忽略的是它甚至包含一个#00是一个零字符的PDF表示…在PDF中使用其名称标记是非法的.)将该名称标记替换为完全相同长度的另一个(幻想)(在两次出现时).我做了选择/ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.保存编辑过的文件.

现在,即使是Acrobat / Adob??e Readers也会毫不犹豫地打开这个修复过的文件.此外,“其他读者”现在可以更好地使用此文件,吐出更少的警告,现在能够识别他们无法获取原始文件的一些元数据(例如创建日期和生产者== wkhtmltopdf).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读