为什么python从符号中提取符号而不是文本

时间:2018-05-15 20:43:41

标签: python-3.x pdf

我试图在一组文件夹中循环一组pdf(都是OCR'd)并在pdf中搜索关键术语,如果pdf包含某个术语,则保存文件夹名称,文件名,等等。这段代码在某种程度上起作用。除此之外,它在搜索条件中缺少一些pdf。原因是因为当我阅读几个pdf时,它会在几页上显示一些乱码(至少对我来说)。例如,假设我在一个名为'the_one.pdf'的pdf中读过。它有278页。当我进入adobe acrobat搜索这个文档时,我可以找到第171页的“搜索术语1”,但是当用python读取它时,python输出如下内容:

std::int64_t

当然,它会正确显示大多数页面,但由于某种原因,它不会显示其中的几个页面。出于保密原因,我无法发布pdfs。有谁知道为什么会这样?

此外,您可以指出加速我的代码或使其更具动态性的任何内容也是有帮助的。一直在寻求学习。

最佳, J.Dykstra

 -ˆ˜
 %
 ˜%˝ˆ
 ,˙
 ˚
 %.
 %,˛#
 %˜˚
 0"
 ˚˝
 %
 ˚˝ˆ˙)˛˚˜
 ˚0˛˚
 :&;
 #˛˘˘˙
 ˚%˚
 "
 %˚˛˘
 ˆ
 ˛˚,˚
 "
 $%˚˚%
 %
 ˝%.
 "˛
 "
 %˜
 ˝,
 -ˆ
 %˘˙
 ˛˘˚
 0"
 "
 ˛

 .˛˝
 %˜˚
 ˝˜
 .%
 !˝ˆ%
 4
 0"
 "
 %˜˚
 ˛
 %˛˘˘˙
 !˝ˆ˜
 %
 ˛ ˚˝ˆ˙)˛˚˜
 ˚0˛
 !˝ˆ%
 .˛˝˘˙8
 ˛˜
 %
 0"
 "
 ˚
 ˛ #%˛%
 "˛
 ˚ˆ˘˚

 ˛ ˛˚˛˝%
 0"%ˆ
 ˛˙
 !˝ˆ˛˘
 %˜
 %
 %"
 ˚ˆ˝%
 #
7
 ˘˛˘˙
 :&;
 ˛˘˚%
 ˛˚,˚
 "
 $%˚˚%
 %
 ˝%.
 %
 %˜
 ˝,
 6
 ;˚
 %˜
 ˛%
 "
 $%˚˚%
 ˚"%ˆ˘˜
 ˘˝˘˙
 %
 "˛
 .˝˚
 %
 ˚˛˜)˛˘%
 /ˇ˚
 ˘˝˘˙
 ˝˘ˆ˜
 ˚˛˜)˛˘%
 /ˇ˚
 "˛
 ˛
 #˚˜
 ˛˚
 9$
 ˜˛˚
 ˜˛˘˚
 :
 "˚
 ˘
 .˝˚
 %
 ˚˛˜)˛˘%
 /ˇ˚
 ˛
 ˜˜
 %
 ˛˘˙
 %
 9$
 ˜˛˚
 ˜˛˘˚
 "˛
 ˛
 ˜ˆ˛˘˘˙
 #˚˜
 ˛˚
 /ˇ˚
 4˛˜
 ˚ˆ˝"
 ˚
 ˛
 ˛˘˚%
 ˛%˜
 %
 ˆ˚
 ˛˘
 %˜˘˚8
 7
 9"˚
 #%˛%˚
 %.
 ˛,
 ˘˛˝
 %
 "
 ˘"%
 ˆ
 ˝˛
 ˛˘˚%
 ˛,
 ˆ˚
 %.
 ˘˝%˝
 ˚˙˚˚
 %

 ˚˝ˆ˙)˛˚˜
 ˚0˛
 !˝ˆ%
 .˛˝˘˚
 &%
 !˛˘
 ˛ ˛,
 ˛˝˛
 ˛˙
 ˚
 %
 %
 %
 %
 /ˇ˚
 ˛ -ˆ˚
 .%
 -ˆ%˛%
 4<
˝6
=8
 .%
 ˛ ˚˝.˝
 ˚˝ˆ˙)˛˚˜
 ˚0˛
 ˛˜
 ˝
 ˛˝,  

1 个答案:

答案 0 :(得分:3)

解析PDF是一项复杂的任务,1.7 spec有大约750页,Adobe用它赚钱 - 这就是为什么它适用于它们。

PDF内部有持有

的表格
  • “字母看起来如何”(字形)
  • “这些字形映射到哪个unicode字母”(你需要正确地从pdf中复制和粘贴某些字符)

和一个交叉引用,其中字形映射到unicode。字体可能(部分)嵌入在pdf中。

多数民众赞成(一个原因)为什么pdf看起来100%正常,可能是“OCR”好的 - 但如果你只是从一个文字中复制和粘贴,这个文字在字形和unicode点之间有一个损坏的映射,你只会得到胡言乱语。

我听说有些程序甚至为所有字形提供了unicode映射,但它们根本不匹配......故意(或质量差) - 防止复制和粘贴。

底线:您可以尝试重新OCR一些页面,您可以使用Adobe Acrobat PRO从PDF中提取文本(它具有ocr功能的内置),这些文本可以让您乱搞或只是跳过它。

你可以尝试一些其他的pdf阅读框架,也许他们得到了一些不太正确的东西 - 但是如果它几乎总是有效的话可能很渺茫,但只是没有一些特殊的pdf。

我只是pdf的新手 - 有一些更先进的ppl可以解决这个问题 - 但是如果你不能分享pdf,那将很难提供任何建议。

替代方法:Searching text in a PDF using Python?