5

我正在尝试使用 PDFMiner 从外语 PDF 文件中提取文本,但被 ToUnicode 语句挫败。即使在普通的 PDF 查看器下,该文件的行为也很奇怪。

例如,这是文件中某些文本的屏幕截图:

正确的文字

但是如果我选择并复制文本,它看起来像这样:

िनरकर</p>

您可以看到几个字符发生了变化,尤其是倒数第二个字符。

毫不奇怪,PDFMiner 提取了不正确的文本。但是每个 PDF 查看器都能正确显示这些数据。我怀疑这个问题要么是 ToUnicode 映射,要么是带有连体字符的东西。所需的字母应该是 0x915、0x94D、0x937 的序列。PDFMiner 只报告 0x915,它描述了一个不同的字符。

我需要做什么才能让 PDFMiner 正确提取文本,即在图像中而不是在复制粘贴的文本中?

这是相关 PDF 的链接

4

1 回答 1

9

简而言之:

您的 PDF 不包含在不使用 OCR 的情况下正确提取文本所需的信息。

详细地:

ToUnicode Map 和PDF中嵌入的 Mangal-Regular 子集的字体程序中的 Unicode 条目都声称这四个字形

四个字形自称是0x915

都表示相同的 Unicode 代码点 0x915。

因此,任何不查看绘制的字形(即不尝试 OCR)的文本提取程序将为这些字形中的任何一个返回 0x915。

背景:

您似乎想知道为什么 PDF 查看器正确显示文本但文本提取(复制和粘贴或 PDFMiner)不能正确提取。

原因是 PDF 作为一种格式不包含文本本身。它包含指向嵌入式字体程序中的字形绘制指令的指针(直接指针或通过映射)。使用这些指针可以按预期绘制 PDF。

此外,它还可以包含将字形指针映射到 Unicode 代码点的额外信息。这些额外的信息被文本提取程序使用。对于您的 PDF,这些映射不正确,因此提取的文本不正确。

于 2015-02-24T11:33:19.023 回答