解析結果が書かれたPDFををplaintextに変換しようとして一週間もかかってしまってほんまクソ、ということでメモを残しておく。
そもそも何でPDFなのか?
この業界、電子納品とか言ってるけど単に印刷時の出力先がプリンタドライバからPDF生成ドライバに変わった程度で印刷する人が変わっただけなのホントに闇
— にょる。 (@W53SA) 2015, 9月 3
ミッション: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あたりを全置換したりして暫くは頑張ってた。
5000ページのpdfから140ページ切り出して、スペース残したままテキストにへ変換しておかしなコントロールコードを消して数字の間に挟まった空白を消したら午前中が溶けた
— にょる。 (@W53SA) 2015, 9月 4
でも、いざWinMergeすると改行コードが飛んだり割り込んだりしてるのが辛かったので、もう少し頑張ることに。
xdoc2txt編
割と有名なツール。さっくり落として試してみる。NBSPが混じったりとかはしませんでしたが、ときどき行が消える。
xdoc2txtかますと行が時々消えるpdf、新手のプロテクトでもかけてんのかって感じです
— にょる。 (@W53SA) 2015, 9月 9
ちょっと辛すぎるので、データ変換を諦めた。
Renee PDF Aide編
PDFを画像とみなしてOCRでテキストに変換する力技。紙に書かれたデータをScanSnapしてOCRするのと何ら変わらないので非常に馬鹿っぽいのですが、PDFをテキストデータに変換する試みが敗北したので仕方ない。若干日本語の怪しげなWebサイトから落としてインストールして動かすと、期待通りの結果。なんというか拍子抜けですが…。
くそpdfとの戦いは結局OCRでねじ伏せる力技で勝利して電子データである意味がほとんどなくなった感じがしますね…
— にょる。 (@W53SA) 2015, 9月 9
結論
電子納品とか言っても単にCAD上に表が描かれてるとかページに吐き出されたpdfだから機械がデータ構造認識できないから何の価値も意味もないんや!!!!!!
— にょる。 (@W53SA) 2015, 8月 28
30MBytesのPDFデータなんぞいらんから600KBytesの解析ソフトウェア投入データをよこせ。