たとえば右の図のような表の含まれるPDFであれば
{
foo => [
{
bar => foobar
},
{
baz => foobarbaz
}
],
....
}
のようなデータ構造に変換したいのですが、うまい方法を考えつきません。
上の変換を実現できるおすすめの
・ フリーソフト
・ 有料ソフト
・ cpanモジュール
などを教えてください。お願いします。
PDFからテキストを抽出する方法
--------------------------------------------------------------------------------
[Top]
PDF(Portable Document Format)は、Windows、Macintosh、UNIXの環境でAcrobat Readerを用いて閲覧することができますが、印刷イメージが崩れては困る文書を配布したり、改竄がやや困難なので技術文書などを配布したりする際に利用されます。ところが、最近困ったことに、公共機関などのWebページで盛んに利用されるようになってきました。これらはさまざまな環境からのアクセスを想定すべきであり、情報の閲覧できる者を限定してはならないはずです。PDFは、視覚障害者の閲覧を困難にしますし、Web閲覧中のAcrobatReaderの起動と閲覧はたいへん重い作業になるので、アクセシビリティの点からいっても好ましい状況ではありません。おそらく文書の作成、差し替えが容易であるから軽率に使用しているだけであろうとおもわれます。PDFを公開するならば、同等の情報をHTMLでも提供すべきでしょう。
PDFからテキストを抽出するには、とりあえず以下の4通りの方法があります。
Acrobatをつかって抽出する方法
pdf2html.exeをつかった方法
Acrobat Access を用いた方法
access.adobe.com による方法
なお、「編集不可」として保存されたPDFは、テキスト抽出ができません。
以前、印刷不可のxlsファイルの作成について調べた時に、Acrobatなら印刷不可という状態で保存できるということを知りました。実はAcrobatには、印刷不可のほかに「編集不可」という有名な保存方法があります。Acrobatなど、PDF形式のデータを生成するアプリケーションには、セキュリティ・データ保護のために、データを暗号化する機能があり、編集不可のデータにしているのです。
とはいっても、編集不可ファイルをテキスト化してしまうソフトが海外(日本語非対応)で以前はあったそうですし、、暗号化したから必ずしも安全とは言い切れない、ということはあります。作成する側は「PDFだから安全」とは考えないほうがよさそうです。
AcrobatSDK・PDFファイルの作成ほか
Adobe Solutions Network Developer Resources
AcrobatSDKほか、各種Adobe社製品のSoftware Development Kitsがあります。
pdf995
PDFファイルを作成することができるフリーウェアです(ブラウザで広告表示があります)。AcrobatのPDF Writerと同様にプリンタドライバとして機能していますので、MS-Wordその他各種ソフトのファイルであっても、印刷する際に出力プリンタを「pdf995」に指定するだけで作成することができます。プリンタドライバのアイコンを右クリックしてプロパティを開き、TrueTypeフォントを使うようにすれば日本語の文字化けを避けることができます。Acrobatその他、PDFを作成するソフトは概して高額なので、このフリーウェアは貴重です。
PDF BookMaker
JPGE、PNG、TIFFなどの画像ファイルからPDFを作成するフリーウェアです。複数の画像ファイルを、複数ページの一つのPDFファイルにまとめることができます。 PDFファイルの大きさは全画像ファイルの合計とほぼ同じです。
papy's softwarelibrary(Programming Libraryより移行)
PDF Designer-Text Edition (テキストファイルをPDFファイルに変換するツール)
PDF Designer-Image Edition (画像ファイル(BMP/JPEG/WMF/EMF)をPDFファイルに変換するツール)
PDF Cleaner (PDFファイルを最適化するツール)
その他PDFファイルの加工・編集・情報収集・解析等、各種フリーウェアのツールがあります。
註)確認したところ、現在は公開していらっしゃいませんでした。(2003.8)
註)公開を再開されたようです。なお、以下のような注意書きがありました。(2007.4)
PDF関連ソフトウェアはpapyの独自PDFエンジンを使用していますのでAcrobatがなくてもPDFを作成・加工・編集できます。PDF関連ソフトウェアで加工・編集するソフトは2002-2003年に作成したものなので当時は存在していないAcrobat6.0(PDF1.5形式)以降のPDFファイルには対応していません。それと暗号化されたファイルは扱えません。
手書きPDF入門
PDFの構造について知りたい方には、SDKを読む前の導入としておすすめします。サンプルを用いてわかりやすく説明されています。
簡単ポストスクリプトの記述
PDFやPostScriptについて概説してあります。Ghostscriptでpdfを作成する方法もわかりやすく説明されています。ちなみに上で紹介したpdf995もGhostscriptを利用したソフトです。
--------------------------------------------------------------------------------
Acrobatをつかって抽出する
Acrobat5 は、RTF(リッチテキストフォーマット)での保存が可能です。RTFは、Microsoft Wordやワードパッド等で開くことができるので、容易にテキスト抽出できます。また、Acrobat5がインストールされていれば、Acrobat・AcrobatReaderのいずれでも、テキスト選択ツールが使用できますので、テキストエディタなどにコピー&ペーストするという手も可能です。テキスト選択ツールによる方法は、Acrobat4でも可能です。
Adobe 「Acrobat で作成した PDF ファイルを元のファイルに戻す事はできますか」
Adobe 「PDF文書のテキスト、グラフィックの再利用」
KeiYu HelpLab「PDFのテキスト抽出とHTML変換」:サードパーティ製のプラグインの紹介等があります。
pdf2html.exeを使う
これは、Acrobat5が必要ないのでありがたいDered B. Noonburg氏作のフリーソフトです。コマンドラインツールですが、ファイルを指定するだけなのでとても軽快に作業できます。変換するファイルが多い際などに重宝します。
生成されるテキストは、文字コードがEUCですので、EUCに対応したテキストエディタで開いてください。
ただし、試したところでは、画像からPDFに変換したものは、テキストにできないようです。pdf2image.exeというツールも同梱されていますので、画像として取り出します。その場合は、OCR等で解析してテキスト化することになってしまいます。
pdftotext.exe(XPdf 0.92)は、PDFファイルバージョン1.3(Acrobat 4)まで対応。
pdftotext.exe(XPdf 1.01)PDFファイルバージョン1.4/Acrobat 5まで。
Xpdfに、Win版・Dos版のほかに、Unix版やソースコード等(こちらが本元)があります。
Available Filtersにはpdf2text.exe(XPdf1.01)ほかがあります。
Acrobat Access を用いた方法
これもAcrobat5は必要ありません。無料ダウンロードできるAcrobat Reader4.x とおなじく無料ダウンロードできるAcrobat Access とを組み合わせることによって、テキスト化します。いずれもAdobe純正ツールです。ただし、日本語は文字化けを起こすことがありますので、その場合にはInterFont等のフォント変更ツールを用いて修正します。
Acrobat Reader は、バージョンが4.xだという点に注意してください。v.5をインストールした状態で試しましたが、Acrobat Accessをインストールできませんでした。
抽出結果には半角スペースが入りますので、テキストエディタの置換機能等で削除してください。
WinNT4.0, AcrobatReader4とAcrobatAccessで動作を確認しました。今回のテスト環境では文字化けを起こしませんでしたので、InterFontは使用していません。(2003.3.10)
Acrobat Accessは、 Adobeからダウンロードできます。
Acrobat Reader4.xは、 Adobe Downloadや、 Adobe Acrobat Reader ダウンロードページからダウンロードできます。
InterFontは、 Ryuuji's Homepageよりダウンロードできます。
この方法は、KeiYu HelpLabの「PDFとアクセシビリティ」より知りました。詳しくはぜひこちらを参照してください。
access.adobe.com による方法
access.adobe.comには、
Web上にあるPDFをフォームで指定してHTMLへ変換
メールの応答システムを利用したHTML・テキストへの変換
の2種類のサービスが提供されていますが、これについて、KeiYu HelpLabは、
access.adobe.comは、通常のPDF文書を読むことが困難な人のためのサービスです。単なるPDFのHTML/テキスト変換ツールとして利用しないでください。障害がない人からの送信がaccess.adobe.comに殺到すると、本当にサービスを必要とする人に多大な迷惑をかけることになります。
と書いていらっしゃいますが、同感です。使用方法の詳細も
KeiYu HelpLabの「PDFとアクセシビリティ」
にありますので、一読をおすすめします。現在のところ日本語には対応していないようです。
--------------------------------------------------------------------------------
©2003 by Hajilyn's Papa;
Status: 2003-03-05; 2003-03-10; 2003-08-23;
E-Mail:awker@tcnweb.ne.jp
コメント(3件)
(1)WordのdocやExcelのxls形式に変換するソフトで変換
必要箇所の抽出はVBAで行うのが楽でしょう
(2)txt形式に変換するソフトで変換
必要箇所の抽出につかう言語は特に問わないです。慣れている言語を使えば良いでしょう
(3)変換を伴わずに直接抽出
PDFファイルの構造等に関するドキュメントは無料で手に入りますが、英語オンリーですし、
ページ数もハンパなく、変換ソフトを使うほうが楽だと思います
http://www.adobe.com/devnet/pdf/pdf_reference_archive.html
それともキャラクタ(文字)が埋め込まれているのですか?
この違いによって、プログラム側の作業が大幅に異なってきます。
文字です!