我有一堆用Adobe Distiller 6从Word打印的PDF(1.4)文件。嵌入了字体(Tahoma和Times New Roman,我在我的Linux机器上),编码说“ANSI”和“Identity-H” ”。现在通过ANSI,我假设区域代码页用于Windows机器,即CP-1251(西里尔语),关于“Identity-H”,我认为这是只有Adobe知道的东西。
我想只提取文本并索引这些文件。问题是我从pdftotext
获得垃圾输出。
我试图从Acrobat导出示例PDF文件,然后我再次得到了垃圾,但是另外使用iconv
进行处理得到了正确的数据:
iconv -f windows-1251 -t utf-8 Adobe-exported.txt
但同样的技巧不适用于pdftotext
:
pdftotext -raw -nopgbrk sample.pdf - | iconv -f windows-1251 -t utf-8
默认情况下采用UTF-8编码,然后输出一些垃圾:Сiconv: illegal input sequence at position 77
pdftotext -raw -nopgbrk -enc Latin1 sample.pdf - | iconv -f windows-1251 -t utf-8
再次扔垃圾。
在/usr/share/poppler/unicodeMap
我没有CP1251,也找不到谷歌,所以试图制作一个。我从维基百科CP1251数据创建了该文件,并在文件末尾附加了其他地图:
...
fb00 6666
fb01 6669
fb02 666c
fb03 666669
fb04 66666c
这样pdftotext
就不会抱怨,而是来自:
pdftotext -enc CP1251 sample.pdf -
又是垃圾了。 hexdump
第一眼看不到任何内容,我想在这里问一下我的问题,然后拼命地从这个问题中得出结论hexdumps