全文検索エンジンでPDFも検索できるようにしたい場合や、PDFを音声で読み上げるソフトを作りたい場合は、PDFからテキストを抽出する処理を組み込む必要があります。 PDFからテキストを抽出するツールやライブラリは既にいくつもありますが、BSD、MIT、Apache License等の基本的に著作権表示のみを課すタイプのオープンソース ライセンスで、かつ、.Net Framework や Java 等の巨大なランタイムを必要としないものという条件を満たすものがありませんでしたので、 自分でがんばって作ってみました。 まだうまく抽出できないケースが結構多く、未完成品ですが、とりあえず現状のものを公開します。
extract_pdf は下記ライブラリを使用してます。各ライブラリのライセンスも併記しています。
extract_pdf は、 PDFの文書構造を解析してjson形式に変換した後、テキスト情報を抽出するという手順で処理します。 最終的に欲しいテキストデータだけでなく、中間形式であるjsonデータも出力できるようになっていますので、 PDFの文書構造を把握したい、という用途にも利用できるのではないかと思います。
[] は省略可能です。省略された場合は、その種類のファイルは出力されません。
extract_pdf PDFファイル名 [ -T 出力テキストファイル名 ] [ -J jsonファイル名 ]
PDFは、結構自由度の高い(PDFを作る側がやり易い)仕様になっていて、PDFを読む側を作るのは結構大変です。 テキストのエンコードの仕方だけを見ても何通りもあるようでして、このソフトではまだ全てのエンコード方法を網羅できていません。 つまり、エンコード方法によって、テキストが抽出できたりできなかったりします。 今のところ、下記パターンには対応したつもりです。
ただし、文書構造の解析に失敗する可能性があり、この条件を満たしていても適切に抽出できないかもしれません。 また、セキュリティ機能(印刷不可、テキスト抽出不可、等)に関するメカニズムをまだちゃんと理解してませんので、これを有効にしたPDFも読み取れません。 なお、変換がうまくいかない文字については、'.'(ビリオド)が書き込まれるようになってます。
PDFの構造や文字コード変換等を知るにあたり、たくさんのWebサイトのお世話になりました。貴重な情報を提供してくださり、ありがとうございます。
[PageInfo]
LastUpdate: 2015-08-15 17:53:06, ModifiedBy: mocchi_2012
[Permissions]
view:all, edit:admins, delete/config:admins