0

私はAdobeDistiller6を使用してWordから印刷されたPDF(1.4)ファイルをたくさん持っています。フォントが埋め込まれ(LinuxマシンにあるTahomaとTimes New Roman)、エンコードには「ANSI」と「Identity-H」と表示されます。ANSIによると、地域のコードページはWindowsマシン(CP-1251(キリル文字))から使用されていると思います。「Identity-H」については、Adobeだけが知っていることだと思います。

テキストのみを抽出し、このファイルにインデックスを付けたい。問題は、からガベージ出力を取得すること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を持っていません、そしてグーグルでそれを見つけることができなかったので、それを作ってみました。ウィキペディアCP1251データからファイルを作成し、ファイルの最後に他のマップの内容を追加しました。

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

だからそれpdftotextは文句を言わないが、結果として:

pdftotext -enc CP1251 sample.pdf -

再び同じゴミです。hexdump一目で何も明らかにならないので、これから何かを必死に結論付けようとする前に、ここで私の問題について尋ねようと思いましたhexdumps

4

0 に答える 0