Проблемы с печатным файлом CP1251 от Word - PullRequest
0 голосов
/ 25 марта 2012

У меня есть несколько файлов PDF (1.4), напечатанных из Word с помощью Adobe Distiller 6. Шрифты встроены (Tahoma и Times New Roman, которые есть на моем компьютере с Linux), а кодировка говорит «ANSI» и «Identity-H».».Теперь, согласно ANSI, я предполагаю, что региональная кодовая страница используется с компьютера с Windows, то есть CP-1251 (кириллица), а в отношении «Identity-H» я предполагаю, что об этом знает только Adobe.

Iхочу извлечь только текст и проиндексировать эти файлы.Проблема в том, что я получаю вывод мусора из pdftotext.Я попытался экспортировать файл примера PDF из Acrobat, и я снова получил мусор, но дополнительная обработка с 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, и я не смог найти его в Google, поэтому попытался его создать.Я создал файл из данных CP1251 из Википедии и добавил в конце файла то, что имели другие карты:

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

, чтобы pdftotext не жаловался, а был результатом:

pdftotext -enc CP1251 sample.pdf -

опять тот же мусор.hexdump ничего не показывает с первого взгляда, и я подумал спросить о моей проблеме здесь, прежде чем отчаянно пытаться что-то сделать из этого hexdumps

...