クソPDF戦記

解析結果が書かれたPDFををplaintextに変換しようとして一週間もかかってしまってほんまクソ、ということでメモを残しておく。

そもそも何でPDFなのか?


ミッション:plaintextがedocument library pdf filterとかいうウンコライブラリでPDF化された5000ページぐらいあるPDFから、100ページぐらいの表組みをplaintextに戻し、手元での解析結果とWinMergeで比較。

試した順に書いていきます。

Adobe Reader

最初に試したのはAdobe Readerからのコピペ。

結果:「数字が一文字奥に空白が入った上に表組みが全部飛ぶ」

何が起きたかというと、Reader上で「1.234 5.678」と表示されているものをコピペすると「1 . 2 3 4 5 . 6 7 8」となってエディタに貼られ、表組の空白は全部飛ぶ。

原型を留めてなくて何が何だかわからんので却下。

extract_pdf編

死んだ目で適当にぐぐってたどり着いたextract_pdfなるバイナリ。osdn.jp

空白がNBSP(0xa0)と単なるSPACE(0x20)混じりになったり、時々文字が化けたり改行コードが飛んで二行つながったり、一行内で勝手に改行するけど
表組みが最低限残ったので、0xa0あたりを全置換したりして暫くは頑張ってた。


でも、いざWinMergeすると改行コードが飛んだり割り込んだりしてるのが辛かったので、もう少し頑張ることに。

xdoc2txt編

割と有名なツール。さっくり落として試してみる。NBSPが混じったりとかはしませんでしたが、ときどき行が消える

ちょっと辛すぎるので、データ変換を諦めた。

Renee PDF Aide編

PDFを画像とみなしてOCRでテキストに変換する力技。紙に書かれたデータをScanSnapしてOCRするのと何ら変わらないので非常に馬鹿っぽいのですが、PDFをテキストデータに変換する試みが敗北したので仕方ない。若干日本語の怪しげなWebサイトから落としてインストールして動かすと、期待通りの結果。なんというか拍子抜けですが…。


番外:PDFの切り抜き

PDFが5000ページもあるので毎回開いてたら日が暮れるので、適当にバラす。

sourceforge.net

GUIではページ切り抜きはできなさそうで、CUIで叩く。

結論


30MBytesのPDFデータなんぞいらんから600KBytesの解析ソフトウェア投入データをよこせ。