こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

pdfファイルについて

こんばんは。
pdfファイルについて教えてください。
A4サイズのpdfファイルの中にある決まった位置に記載されている
文字を判別する方法はありますでしょうか。
何をしたいかといいますと
認識した文字でファイル名を登録したいです
何かヒントでもいただけると助かります。
よろしくお願いいたします。

投稿日時 - 2020-06-28 19:48:32

QNo.9766218

困ってます

質問者が選んだベストアンサー

技術者カテゴリーでの質問ですので、技術者向けの回答を。

pdfは書式文字列とデータからなるテキストファイル(データ部分にバイナリを含むこともある)ですので、書式さえ理解していれば、そこから情報を抜き出すことは可能です。
http://www.pdf-tools.trustss.co.jp/Syntax/fileStructOvv.html
https://techracho.bpsinc.jp/west/2018_12_07/65062

とはいえ、実際に書式定義に従ってPDFを人力で解析するのはとても大変です。そこで、多くは解析・操作を手助けしてくれるライブラリを使います。

有名どころでitextを挙げておきます。
https://itextpdf.com/en
javaプログラマなら、そのまま使えます。
もしwindowsプログラマなら、dotnetに対応したitextsharp
https://www.nuget.org/packages/itext7/
をC#などから利用すればいいと思います。

投稿日時 - 2020-07-01 08:40:12

お礼

ご回答ありがとうございます。

投稿日時 - 2020-07-14 11:16:09

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

3で回答しましたが、その後ドンピシャのQ&Aをstackoverfowで見つけたので、自分自身の備忘も兼ねて、参考URLに記しておきます。
Qを和訳すれば「座標指定によるPDFのテキスト抽出」あたりでしょうか。

先の回答ではライブラリとしてitextを紹介しましたが、このQ&AではapacheのPDFBox を使っています。
apacheのサイト
https://svn.apache.org/repos/asf/pdfbox/site/publish/userguide/dot_net.html?p=1197837
ビルドして配布しているサイト
http://www.squarepdf.net/pdfbox-in-net

参考URL:https://stackoverflow.com/questions/7405267/extract-pdf-text-by-coordinates

投稿日時 - 2020-07-02 15:22:31

お礼

ご回答ありがとうございます。

投稿日時 - 2020-07-14 11:15:24

ANo.2

絶対に出来ない内容でもないですが、非常に高いプログラミングスキルを必要とします。

まず大前提として、ある決まった位置 の情報がテキストデータとして読めることが必要です。

たとえば、pdfページ内の写真に写ってる文字を読み取るとなると画像認識からの取り組みになりますが、テキストデータを読み取るのなら、ファイルの先頭から何バイト目とかの指定が可能になります。

うまく文字を読み取れたなら、バッチ処理等でそのファイル名を抽出した文字を使ってリネームします。リネームが失敗するなら、新しい文字列のファイル名にコピー処理します。

pdfはバイナリーデータなので、その辺の気遣いも必要です。

投稿日時 - 2020-06-29 00:13:43

お礼

ご回答ありがとうございます。

投稿日時 - 2020-07-14 11:15:56

ANo.1

Acrobatもってないので推測ですが
Acrobat DC SDK で領域をトリミングして切り出して領域PDFを作り
それをpdf2ascなどでテキスト化して流せば切り出せるのでは。
(領域をうまく設定しないとフォントが図形化されたりゴミが入るかも)
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_Dev_PDFCreation%2FCropping_and_rotating_pages.htm&rhsearch=trim&rhhlterm=trim&rhsyns=%20

投稿日時 - 2020-06-29 00:09:51

お礼

ご回答ありがとうございます。

投稿日時 - 2020-07-14 11:15:42

あなたにオススメの質問