【问题标题】:PDF Find function does not workPDF 查找功能不起作用
【发布时间】:2014-09-26 10:14:00
【问题描述】:

我有一个 pdf 文件,想执行经典的 adobe 查找功能 (ctrl+f)。我的问题是它从来没有找到任何匹配项,而我可以选择文本并完美地复制/粘贴它,所以我认为这不是字体编码问题。

仅供参考,它是我从互联网上下载的 PDF(不是我自己创建的),打开文档属性时没有任何描述。文档限制摘要选项均设置为“允许”,但文档组装、页面提取和签名设置为“不允许”。

提前致谢

【问题讨论】:

  • 请分享有问题的 PDF。
  • 如何上传?
  • 除非您自己创建了 PDF(您说您没有),或者您编写了 Adob​​e Acrobat Reader(您可能没有),否则这个问题与 SO 无关。 ..也就是说:您可以将此PDF中的文本复制到纯文本文档中吗?如果不是,则文本不可读。
  • @Jongware 是的,我可以复制它,我已经提到过。 @mkl 我如何分享它
  • 使用一些文件共享机制,无需太多添加,上传,在此处发布 url。例如,谷歌驱动器或保管箱。

标签: pdf


【解决方案1】:

基本问题是 PDF 的 Info 字典已损坏:

1270 0 obj<</Taylor and Francis()/CreationDate(D:20140519140437-07'00')/k¨¯©ßÄ8Ü¥[¦H-
×58O®¬tB!jŽi¿²©–ý³¿4)'Šóå:ÞcàG·Ñ•[H oÆv²O»Nj°=løvO+
`µÃrü}›y`,WÂ%Ü¿ d†/Title/Author(Joe, Harry)/Unknown/ModDate/Creator(TeX)/{¥¶¿‘É.’¶ZàQ'6XÎ/?Féû i
uŽp„¬L/Trapped/Keywords/PTEX#2eFullbanner/펿–Ê#ˆ¦”Qarmæ qq»ã
h
W<:Ê+Úã
¤ÑFĦ²¤.y.‹í¦TxÉ!©´‘Ê~s‹E;³/EBX#5fPUBLISHER/{úôêΙ{Êçñ*yj
“kaî¼Y:/Producer>>endobj

看起来完全是乱码。

我对文件进行了修补,使该对象仅包含一个空字典:

1270 0 obj<<>>endobj
nd Francis()/CreationDate(D:20140519140437-07'00')/k¨¯©ßÄ8Ü¥[¦H-
×58O®¬tB!jŽi¿²©–ý³¿4)'Šóå:ÞcàG·Ñ•[H oÆv²O»Nj°=løvO+
`µÃrü}›y`,WÂ%Ü¿ d†/Title/Author(Joe, Harry)/Unknown/ModDate/Creator(TeX)/{¥¶¿‘É.’¶ZàQ'6XÎ/?Féû i
uŽp„¬L/Trapped/Keywords/PTEX#2eFullbanner/펿–Ê#ˆ¦”Qarmæ qq»ã
h
W<:Ê+Úã
¤ÑFĦ²¤.y.‹í¦TxÉ!©´‘Ê~s‹E;³/EBX#5fPUBLISHER/{úôêΙ{Êçñ*yj
“kaî¼Y:/Producer>>endobj 

现在 Adob​​e Reader 允许我正确搜索 PDF。

看到这样的问题很有趣,其中损坏的 PDF 允许大部分 Adob​​e Reader 代码工作,并且只导致某些看似无关的功能失败

【讨论】:

  • 如果 PDF 结构的其余部分是正确的,这强烈表明创建它的软件中存在某种错误。但是.. 没有/Info 字段,我们不知道它是什么!
  • 如果 PDF 结构的其余部分是正确的 - 至少 iText 在补丁后成功解析它(实际上我最初尝试使用 iText 解析原始 PDF 文本并得到InvalidPdfException 将我指向损坏的 Info 间接对象)。 创建它的软件中的错误 - 这也可能是一个软件操纵由其他软件创建的中间 PDF。
  • 谢谢mkl!但是我该如何应用这个补丁?如何访问此信息字典文件?
  • 我如何应用这个补丁 - 我使用了一个十六进制编辑器,搜索了“Francis”,然后用“>>endobj”和一行覆盖了“/Taylor a”休息。您可能想通知您收到该 PDF 的站点它已损坏并要求修复...
猜你喜欢
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2021-08-27
  • 2013-01-31
  • 2013-01-17
相关资源
最近更新 更多