0

我有一堆使用 Adob​​e Distiller 6 从 Word 打印的 PDF (1.4) 文件。嵌入了字体(Tahoma 和 Times New Roman,我在我的 Linux 机器上拥有)并且编码显示为“ANSI”和“Identity-H”。现在通过 ANSI,我假设区域代码页是从 Windows 机器使用的,即 CP-1251(西里尔文),关于“Identity-H”,我假设这是只有 Adob​​e 知道的东西。

我只想提取文本并索引这些文件。问题是我从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

再次扔垃圾。

我没有CP1251 /usr/share/poppler/unicodeMap,用谷歌找不到,所以试着做一个。我从 wikipedia CP1251 数据创建了文件,并在文件末尾附加了其他地图的内容:

...
fb00 6666
fb01 6669
fb02 666c
fb03 666669
fb04 66666c

所以这pdftotext不会抱怨,而是源于:

pdftotext -enc CP1251 sample.pdf -

又是同样的垃圾。hexdump乍一看并没有透露任何东西,我想在这里问一下我的问题,然后拼命地试图从中得出一些结论hexdumps

4

0 回答 0