我试图使用PDFMiner从外语PDF文件中提取文本,但是被ToUnicode语句挫败了.即使在普通的PDF查看器下,该文件的行为也很奇怪.
例如,以下是文件中某些文本的屏幕截图:

但是,如果我选择并复制文本,它看起来像这样:
िनरकर
您可以看到多个字符已更改,尤其是倒数第二个字符.
毫不奇怪,PDFMiner提取不正确的文本.但每个PDF查看器都能正确显示这些数据.我怀疑问题是ToUnicode地图,或者是带有连接字符的东西.所需的字母应该是0x915,0x94D,0x937的序列.PDFMiner仅报告0x915,它描述了不同的字符.
我需要做些什么才能让PDFMiner正确提取文本,即在图像中而不是复制粘贴文本?
简而言之:
您的PDF不包含在不使用OCR的情况下正确提取文本所需的信息.
详细地:
在PDF中嵌入Mangal-Regular子集的字体程序中的ToUnicode Map和Unicode条目都声称这四个字形

all代表相同的Unicode代码点0x915.
因此,任何不查看绘制的字形(即不尝试OCR)的文本提取程序将为这些字形中的任何一个返回0x915.
背景:
您似乎想知道为什么PDF查看器正确显示文本但文本提取(复制和粘贴或PDFMiner)无法正确提取.
原因是作为格式的PDF不包含文本.它包含指向嵌入式字体程序中的字形绘制指令的指针(直接或通过映射).使用这些指针可以按预期绘制PDF.
此外,它可以包含将此类字形指针映射到Unicode代码点的额外信息.这些额外信息由文本提取程序使用.对于PDF,这些映射不正确,因此提取的文本不正确.
| 归档时间: |
|
| 查看次数: |
1255 次 |
| 最近记录: |