PDFの文字を読み込む方法(文字がテキストとして保存されている場合)について紹介します。
文字がテキストとして保存されている場合に限定するので、OCRは使いません。
OCRを使いたい場合(PDF全体が画像のような状態になっている場合)はこちらをご参照ください。
文字を読み込む方法はいくつかありますのでそれぞれご紹介します。
①Read PDF Text
②コピペ
③Get Visible Text
まず前提として、以下のPDFファイルを用意しました。(ExcelをPDFに変換したものです。)
Activities>Available>App Integration>PDF>Read PDF Textを使用します。
(アクティビティが見つからなかった場合はこちらをご参照ください。)
PDFに特化したアクティビティなので、使用方法は簡単で、
FileNameにPDFファイルのファイルパス、OutputのTextにPDFの内容を取得する変数を設定します。
また、InputのRangeはデフォルトが”All”ですが”1″とすると1ページ目だけが取得できます。
今回はPDFのTextの中身をTextファイルに出力させて確認しようと思いますので、Write Text Fileを追加します。
これで実行してみると以下のようなテキストファイルが出力されます。
このアクティビティでちゃんとテキストが取得出来た場合はこれで良いと思います。
一度PDFを開いて、文字列をコピペして取得する方法を紹介します。
(コピペする方法については詳細がこちらにありますので、ご参照ください。)
まず、Open ApplicationかStartProcessで対象のPDFファイルを開きましょう。
お使いのPDFのツールでPropatiesは変わってくるかと思いますので、参考までにのせておきます。
・Start Processの場合
ArgumentsにはAdobe Readerのexeを入力します。(Open Applicationなどで、Indicate on Screenすると取れます)
FileNameには対象のPDFファイルのファイルパスを入力します。
・Open Applicationの場合
Argumentsには対象のPDFファイルのファイルパスを入力します。
FileNameはIndicate on Screenをすると自動で入力されるのですが、いらないので消します。
Selectorはtitle部分を消します。
ここでは、Open Applicationを使ったとして次の処理を作成していきます。
この後やりたいこととしては、PDFを全選択(Ctrl+A)してコピー(Ctrl+C)という作業です。
Send Hotkeyを使います。
Indicate element inside windowでPDFの文章部分を選択します。
そしてCtrlにチェック、Keyにacを入力します。
これで、Ctrl+aとCtrl+cが実行されたことになります。
最後に、コピーされている文字列をテキストファイルに貼り付けます。
Get from Clipboardでコピーされている文字列を変数に格納し、①と同じくWrite Text Fileを行います。
これで実行してみると以下のようなテキストファイルが作成されます。
ちなみに、終わったときにPDFファイルが開きっぱなしとなっていますので、
Close Applicationをいれるといれるとファイルが閉じられます。(×ボタンクリックとかでも大丈夫です。)
Activities>Available>UI Automation>Text>Screen Scrapping>Get Visible Textを使用します。
基本的な流れは②と同じなので割愛します。Get Visible TextをOpen ApplicationのDoの中にいれます。
Indicate element inside windowでPDFの文章部分を選択します。
PropatiesのOutputのTextに文字列を格納する変数を入力します。
これで後は、①②と同じようにWrite Text Fileをいれます。
そして実行してみると以下のようなテキストファイルが出力されます。
ちなみにGet Visible Textは見えてる部分しか取得しないので、取得する前にPDFを最大化し、以下の赤枠のボタンを押して1ページがすべて表示されるように変更してから使いましょう。
また、1ページずつしかとれないので、全ページとりたい場合は、Send HotkeyでPageDownするなどして、全ページとっていくようにしましょう。
以上、PDFの文字を読み込む方法(文字がテキストとして保存されている場合)でした。
①②③と今回の例だけでもすべて取得のされ方が違いましたので、実際に使用する際は、実際のファイルを使ってどのように取得されるかを確認してから使ってください。