こんにちは。
仕事の自動化にやりがいと達成感を感じるガッくんです。
この記事の目次
目的
PDF 形式のファイルからテキスト情報を抽出します。
Microsoft Office 製品ならテキスト、図、グラフなどはオブジェクトなので情報を取得出来ますが、PDF 、画像の中の文字列などは容易には取得出来ません。(私には)
Microsoft Office 製品もPDF Export が実装されたこともあり、比較的テキストデータを保持した PDF ファイルが多く流通するのではないかなぁ〜と思い、PDF 形式のファイルからテキスト情報抽出をやってみました。
関数
準備
やり方はサードパーティ(使い方合ってるか微妙)から PDF のテキスト抽出するプログラムが公開されているので、使っちゃいます。プログラムは xdoc2txt.exe です。
聞いたことがある人も多いのではないでしょうか!!
ダウンロード出来る WEB ページの URL を載せたかったのですが、直リンクはマナー違反とか、いまいち載せていいのかわからなかったのであえてやめました。
なんとか下の①〜③をやって下さい。
① xdoc2txt ダウンロード
下記のどちらかがネットにありました。
・xdoc2txt 2.16.1 ( xd2tx2161_x64.zip ) - x64(64bit)版
・xdoc2txt 2.16.1 ( xd2tx2161.zip ) - x86(32bit)版
私は 64bit 版をダウンロードしました。
②ダウンロードした .zip ファイルの解凍
右クリックの「すべて展開」で出来ます。
xd2tx2161_x64(64bit版ダウンロードの場合)というフォルダが出来ました。
③フォルダの作成
xdoc2txt フォルダをデスクトップに作成します。
ディレクトリはこんな感じになるはずです。
C:\Users\********\Desktop\xdoc2txt( ********* はPCによる)
作成した xdoc2txt フォルダの中身は以下の通りです。
xdoc2txt フォルダ
├xdoc2txt.vbs(コードは下記に示す)
└xd2tx2161_x64(②で解凍したやつ)
ソースコード
準備で作成した xdoc2txt フォルダの中に入れる xdoc2txt.vbs を書きます。
xdoc2txt.vbs
'---------------------------------------------------------------
' テキスト変換したいファイルの定義
'---------------------------------------------------------------
analysisFile = "C:\Sample.pdf"
'---------------------------------------------------------------
' WshShell の作成
'---------------------------------------------------------------
set WshShell = CreateObject("WScript.Shell")
'---------------------------------------------------------------
' 解析実行ファイルのディレクトリ定義
'---------------------------------------------------------------
xdocPath = " C:\Users\********\Desktop\xdoc2txt\xd2tx2161_x64\command\"
'---------------------------------------------------------------
' コマンドプロンプト用コマンド作成
'---------------------------------------------------------------
exCommand = xdocPath & "xdoc2txt -f " & analysisFile
'---------------------------------------------------------------
' コマンド実行
'---------------------------------------------------------------
set oExec = WshShell.Exec(exCommand)
コメント
xdoc2txt.vbs を実行すると analysisFile と同じディレクトリ(上記のソースの場合は "C:\" )に "Sample.pdf" のテキストが抽出されて "Sample.txt" というファイルが作成されました。
以上