見出し画像

PDF内から文字列を抽出してフィールドに登録

「DataSyncer PDF to kintone(データシンカー)」では、PDFファイル内から文字列を抽出して、kintoneアプリの任意のフィールドへ登録することができます。

請求書PDFから「請求日」と「請求No」を抽出

上記の例では「請求日」と「請求No.」の右側文字列を抽出して、請求書アプリのそれぞれのフィールドに値を入力しています。

PDFファイルから値を抽出してフィールドにセット

設定方法1(文字列検索)

抽出したい文字列の位置を特定するキーワード文字列と抽出を開始する位置および抽出する文字列数を入力データ欄に記載します。

{"right_extract": {"keyword": "請求書No.", "start": 1, "count": 9, "del": "¥,"}}

"right_extract" / "keyword" / "start" / "count" / "del"は予約語です。 
keywordに検索したいキーワードを指定します。この例では"請求書No."を指定しています。
startには検索した結果の右側何文字目から抽出を開始するかを指定します。
countには、抽出する文字数を指定します。countの代わにend_wordで終端文字を指定することもできます。end_wordを空文字""にすると文末まで抽出します。

{"right_extract": {"keyword": "請求書No.", "start": 1, "end_word": "¥n", "del": "¥,"}}

改行コードを終端文字にした例

delには、抽出した結果の文字列から削除したい文字を指定します。この例では"¥"と","を削除します。例えば "¥10,000" を抽出した場合、"10000"という文字列をフィールドに入力します。delの指定は任意です。

実際の設定例

上記の設定の場合、PDFファイルを全文検索して「サイボウズ」という文字列がヒットしたら、それぞれ指定されたフィールドコードに入力データに指定した文字列抽出結果を登録します。

文字列分割

予約語 split を追加すると、抽出後文字列をdelimiterで分割して指定したindexの文字列を取り出すことができます。

{"right_extract": {"keyword": "請求書No.", "start": 1, "end_word": "\n", "del": "¥,", "split":{"delimiter": "9", "index":0}}}

文字列分割の例

上記の場合、「B07194830」を「9」で区切って0番目の文字列「B071」を採用します。(indexは0から始まる整数値です)
splitを指定した場合、delimiterおよびindexは必須となります。delimiterは複数の文字列も指定可能です。改行を指定する場合は"\n"を設定してください。

{"right_extract": {"keyword": "請求書No.", "start": 1, "end_word": "\n", "del": "¥,", "split":{"delimiter": "\n", "index":0}}}

文字列分割で改行コードを指定した例

設定方法2(インデックス指定+文字列検索)

PDFのブロックインデックスを指定した抽出が可能です。
PDFは内部的にブロック単位で文字列が配置されているため、ブロック番号を指定することでより細かい抽出位置の指定が可能です。(ブロック番号は「PDF読取結果フィールド」の【】で囲まれた数値です)

{"row_index_extract": {"row": 3, "keyword": "請求書No.", "start": 1, "count": 9, "del": "¥,"}}

ブロック番号を指定した抽出設定例

rowには抽出したいブロック番号を指定します。ブロック番号に指定された行にkeywordで指定した文字列がヒットするとその文字を抽出します。
なお、keywordに空欄を指定("keyword":"" )するとブロック番号で指定された行の「全ての文字列を抽出」します。

文字列分割

抽出後の文字列を分割して指定したインデックスの文字列を取得可能です。

{"row_index_extract": {"row": 3, "keyword": "請求書No.", "start": 1, "count": 9, "del": "¥,", "split":{"delimiter":"*", "index":1}}}

文字列分割を指定した抽出設定例

設定方法は「設定方法1」をご覧ください。


この記事が気に入ったらサポートをしてみませんか?