メインコンテンツへスキップ

ドキュメントの解析情報を準備する

このガイドの内容

解析情報の準備 生データを変換するダッシュボード設定は PDF の中へ 自動化 PDF データ抽出キャプチャキーを定義し、サンプル文書上に領域を描画し、各キーに抽出ルールを割り当てます。 正規表現 安定したパターンまたは JavaScript 表現 条件付きロジック用。保存すると、同じテンプレートが REST API、 Make、 Zapier、 Power Automate、 そして n8n その参照により テンプレートID。

関連ブログ記事
この機能に関するブログ記事はまだありません。近日公開予定です。
その間、PDF4me ブログを閲覧して、あらゆるプラットフォームのチュートリアルやワークフローをご覧ください。
ブログをご覧ください →

セットアップの認証​

パーステンプレートの作成は PDF4me 開発者ダッシュボード。アカウントでサインインしてから、 API ドキュメント解析のキー API ここで作成したテンプレートを使用する呼び出し。

見逃してはならない重要な事実​

まず正規表現から始め、 JavaScript 必要な場合にのみ
使用 正規表現 形状が安定しているフィールド(請求書番号、日付、合計、納税者番号)の場合。 JavaScript 表現 条件付きロジック、複数ルールの分岐、または文書分類が必要な場合にのみ使用してください。同じテンプレート内で両方を混在させることは問題なく、推奨されます。
安定したレイアウトファミリーごとに1つのテンプレート
フォントの変更や位置のずれといった細かな変更は、単一のテンプレートで処理できます。レイアウトが大きく異なる場合(請求書のデザインが異なる2つのベンダーなど)、個別のテンプレートを作成し、Parse Documentを呼び出す前に、分類子またはソースシステムに基づいて適切なテンプレートにファイルをルーティングしてください。
保存する TemplateId名前ではなく
変更を保存すると、ダッシュボードは GUID を生成します。 テンプレートID テンプレート用。常に渡す テンプレートID 生産中 API 電話。 テンプレート名 これも機能しますが、テンプレートの名前を変更すると、名前で参照している自動化機能が動作しなくなります。

ステップ1:解析テンプレートを作成する​

  1. 開く ドキュメント解析ダッシュボード。
  2. クリック 追加 そして明確なテンプレート名を入力します(例: invoice または vendor-statement)
  3. クリック 保存 空のテンプレートを作成する。
  4. テンプレートを開く 編集 キャプチャキーの設定を開始するモード。
開発者ダッシュボードにある PDF4me の解析ドキュメントテンプレート一覧には、自動 PDF データ抽出用の新しい解析テンプレートを作成するための「追加」ボタンがあります。

ステップ2:サンプルをアップロードし、キャプチャキーを設定します。​

ダッシュボードにはアップロードされた PDF 右側に表示され、 解析情報 左側のフォームを使用してください。合成テストファイルではなく、実際の運用環境で使用されているサンプルを使用することで、キャプチャ領域が実際のトラフィックで見られるものと一致するようにします。

  1. クリック テンプレートファイルをアップロード そして、代表的なサンプル(請求書、契約書、フォームなど)を選びます。
  2. 下 キー、 クリック + キャプチャキーを追加するには、キャメルケースで名前を付けてください。 invoiceNumber、 customerName、 totalAmount。
  3. 選ぶ 式の種類を選択してください 鍵については: Javascript Expression または Regex Expression。
  4. 表示されたフィールドに、式本体を貼り付けてください。
  5. セット ページ に all すべてのページをスキャンするか、特定のページ番号までスキャンします(1、 2範囲を限定するため、など)
  6. 切り替え ページ全体を検索 値が固定位置にない場合に有効になります。無効にすると、描画されたキャプチャ領域のみが検索されます。
PDF4meのドキュメント解析設定UI。左側のパネルには、テンプレート名「invoice」、解析ID、および「式タイプを選択」ボタン(JavaScript式、JavaScript式本体、ページすべて、ページ全体の検索切り替え)を備えた「解析情報」が表示されます。右側のパネルには、アップロードされた請求書PDFが表示され、上部に左から右へ順に「テンプレートファイルのアップロード」、「解析テスト」、「変更の保存」のアクションボタンが配置されています。

ドキュメント解析設定画面。左:キーと式タイプを含む解析情報フォーム。右:アップロードされたサンプル。 PDFアクションボタンは左から右に並んでいます:テンプレートファイルのアップロード、解析テスト、変更の保存。

ステップ3:キーごとに式タイプを選択する​

式タイプ最適典型的な使用例複雑
Regex ExpressionFixed text patternsInvoice number, dates, totals, tax IDs, postal codesLow
JavaScript ExpressionConditional and multi-rule extractionDocument classification, fallback logic, rule orchestrationMedium to High

正規表現パターン(正規表現PDFパーサーの基本)​

使用 正規表現 フィールドの形状が安定していて予測可能な場合。捕捉された領域が最初のマッチのためにスキャンされます。

INV-\d{6,10}
\d{2}/\d{2}/\d{4}
\$?\d{1,3}(?:,\d{3})*(?:\.\d{2})?

請求書における一般的なキーマッピング:

  • invoiceNumber → INV-\d{6,10}
  • invoiceDate → \d{2}/\d{2}/\d{4}
  • totalAmount → \$?\d{1,3}(?:,\d{3})*(?:\.\d{2})?

これらのパターンは、仕入先明細書、発注書、出荷書類の同じ項目にも適用できます。なぜなら、請求書番号、日付、金額は、ほとんどのビジネス文書で同じ形式を共有しているからです。

JavaScript 条件論理の表現​

使用 JavaScript 表現 出力が文書内の複数のマーカーの存在または組み合わせに依存する場合。 PDF4me 抽出したテキストを変数として関数に渡します textあなたの関数はテキストを評価し、キーの値となる文字列を返します。

例1:コンテンツマーカーによる分類​

利用規約文書と注文書文書を区別するために、以下のマーカーフレーズの有無を確認します。

function functionFormatTextDate1(text) {
console.log("Hello");
var term = [...text.matchAll(/General Terms and Conditions/gi)];
var order = [...text.matchAll(/your ordernumber/gi)];

if (term.length) {
if (order.length) {
return "Order document";
} else {
return "Terms and Conditions";
}
} else {
return "Not Terms and Conditions";
}
}

return functionFormatTextDate1(text);

例2:請求書と注文の検出​

単語の存在に基づいて文書が請求書か注文書かを判断する短い分類器 invoice そして ordernumber:

function functionGetInvoiceOrder(text) {
// You get all PDF text in `text`
var invoice = [...text.matchAll(/invoice/gi)];
var order = [...text.matchAll(/ordernumber/gi)];

if (invoice.length) {
if (order.length) {
return "Order document";
} else {
return "invoice";
}
} else {
return "";
}
}

return functionGetInvoiceOrder(text);

実装のヒント: ロジックを名前付き関数でラップして、次のように呼び出します。 return functionName(text); 一番下に表示されます。ダッシュボードは、式本体を関数として実行し、その最終的な戻り値がキーに設定されます。

ステップ4:解析テストと変更の保存​

エディター上部のアクションボタンは、使用順に左から右に並んでいます。

  1. テンプレートファイルをアップロード サンプルをロードします PDF キャプチャ領域を描画するために使用されます。
  2. テスト解析 アップロードされたサンプルに対してすべてのキーを実行し、抽出された値をインラインで表示します。各正規表現を検証するにはこれを使用します。 JavaScript 保存前に式を記述します。
  3. 変更を保存 テンプレートを永続化し、安定した値を割り当てます TemplateId (GUID)。そのGUIDをコピーして、 API 通話と自動化プラットフォーム。

各キーを反復処理して テスト解析 各フィールドの期待値を返します。隣接するテキストが表示される場合はキャプチャ領域を狭めるか、パターンマッチングが緩すぎる場合は式を絞り込んでください。

テンプレートを使用する API または自動化呼び出し​

一度 変更を保存 割り当てる TemplateId同じ解析テンプレートは参照によってどこでも実行できます。各プラットフォームで設定を再作成する必要はありません。

分野ソース目的
TemplateId保存後にテンプレート詳細パネルに表示されるGUID生産自動化のための安定した識別子。常にこちらを優先します。 TemplateName。
TemplateNameステップ1で入力した名前代替のルックアップ方法。テンプレートの名前を変更すると、名前でテンプレートを参照する呼び出しが機能しなくなります。
ParseIdクライアント側で生成するGUID(呼び出しごとに1つ)リクエストと解析結果を関連付けます。ログ記録や監査証跡に役立ちます。
docNameソース PDF ファイル名追跡情報やエラーメッセージの表示に使用されます。
docContentソース PDF エンコードされた Base64解析対象のファイル。
asyncfalse 同期の場合、 true 世論調査のために応答配信を制御します。

例 REST リクエストボディ:

{
"docName": "invoice.pdf",
"docContent": "BASE64_ENCODED_PDF_CONTENT",
"TemplateId": "12345678-1234-1234-1234-123456789abc",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": false
}

レスポンスには、テンプレートで定義したキーごとに1つのフィールドが含まれています。それをルーティングしてください。 JSON 下流の任意のノードへ: Google Sheets、 Airtableデータベース、Excel、またはWebhook。

一般的なワークフロー​

典型的な構文解析テンプレートパターンHow a saved parse template moves from dashboard to production.
請求書受信箱から会計スプレッドシートへ
  1. 仕入先からの請求書 PDF 監視対象のメールまたはクラウドフォルダに届きます。
  2. Make、 Zapier、 Power Automate、 または n8n Parse Document を呼び出す TemplateId。
  3. 構造化された JSON 出力(invoiceNumber、totalAmount、invoiceDate)は行として追加されます Google Sheets またはExcel。
  4. 経理部門はスプレッドシートから直接確認し、承認します。
フォーム入力内容をデータベースに記録する
  1. 顧客が記入済みのデータをアップロードします PDF ポータル経由でフォームを送信してください。
  2. バックエンドは Parse Document を呼び出します。 TemplateId そして Base64 PDF。
  3. 解析された JSON テンプレートキーごとに1つの列を持つデータベースINSERTにマッピングされます。
  4. 解析された名前と参照番号を使用して、確認メールが顧客に送信されます。
文書分類器+抽出器
  1. 監視対象のフォルダには、請求書、注文書、契約書など、さまざまな種類の文書が混在して保存されます。
  2. A JavaScript テンプレート内の式キーは、文書の種類を返します(上記の例2を参照)。
  3. ワークフローでは、返されたファイルの種類に基づいて、各ファイルを適切な下流システムにルーティングします。
  4. 請求書として識別されたファイルは、同じテンプレート呼び出し内で正規表現に基づくフィールド抽出処理が続行されます。

テンプレート構成のベストプラクティス​

  • キャプチャ領域は、想定値よりもわずかに大きめに描画してください。そうすることで、フォントや位置のずれによって値がフレームからはみ出すのを防ぐことができます。
  • テンプレート全体でキー名をキャメルケースで統一することで、スプレッドシート、データベース、Webhookなどの下流工程でのマッピングが予測可能になります。
  • すべてのキーを、オプションのフィールドの欠落、2 ページ目の請求書、および OCRスキャンされたテキストから派生 PDFs。
  • 使用 JavaScript 正規表現ではルールを表現できない場合にのみ、式を使用します。ロジックをシンプルに保つことで、テンプレートのデバッグが容易になります。
  • テンプレートを名前でバージョン管理します(invoice-v1、 invoice-v2破壊的な変更を行う際には、生産自動化が独自のペースで移行できるようにする必要があります。
  • スキャンを実行 PDFs を通して OCR まず( PDF4me OCR 解析前にエンドポイント)。テンプレートは、スキャンしたテキストレイヤーから抽出します。 PDFs 持っていない OCR 適用されます。

関連アクション​

ドキュメントを解析する API
REST 保存したテンプレートを任意のエンドポイントに対して実行する PDF 使用 TemplateId そして構造化されたリターン JSON。
分類文書の設定
フィールド抽出を行わないカテゴリのみの出力に関する補足ガイド。Parse Document の前にプレルーティングとして役立ちます。
ドキュメントを解析 Make
テンプレートをビジュアルワークフローに適用し、下流のルーティング、ストレージ、通知モジュールと連携させます。
ドキュメントを解析 Zapier
トリガーベースからテンプレート解析を実行する SaaS 6,000以上のアプリにわたる自動化。
ドキュメントを解析 Power Automate
解析出力を統合する Microsoft 365 承認の流れ、 SharePoint 記録、そして Dynamics パイプライン。
ドキュメントを解析 n8n
正規表現を使用したセルフホスト型ワークフローまたは JavaScript 表現ベース PDF データ抽出に加え、下流ノードの完全な制御が可能。

よくある質問​

Should I use Regex Expression or JavaScript Expression first?+
Start with Regex Expression for fixed-shape fields like invoice numbers, dates, totals, and tax IDs. Move to JavaScript Expression when extraction depends on multiple conditions, fallback rules, or document classification. Most production templates use Regex for around 80% of keys and JavaScript for the rest.
Where does the text variable in JavaScript Expression come from?+
PDF4me passes the extracted text of the captured region (or the full PDF when Search Whole Page is enabled) into the expression context as the variable named text. Your function evaluates that string and returns a string for the configured key.
Does parse template extraction work on scanned PDFs?+
Yes, when the PDF has been OCR-processed first. Scanned PDFs are images until OCR is applied. Run the source file through the PDF4me OCR endpoint or upload an already-OCR'd PDF to the dashboard before drawing capture areas. The template then extracts from the OCR text layer.
Can one template handle multiple invoice layouts?+
It can absorb small differences in font, position, or page count. For genuinely different layouts (two vendors with different invoice designs) create separate templates and route files to the right one by classifier or source system before calling Parse Document.
What do I need to call the parse template from the API?+
Send docName, docContent (the PDF as Base64), TemplateId (the GUID copied from the dashboard after Save Changes), ParseId (a client-generated GUID), and async (false for immediate response, true for polling). TemplateName works instead of TemplateId but TemplateId is recommended for stable automation.
How do I move extracted data into Excel, Google Sheets, or a database?+
The parse output is structured JSON, with one field per key you defined in the template. Route that JSON to any destination from your automation platform: Add Row in Google Sheets, Insert Row in Airtable or a database, or write to Excel via the Excel module in Make, Power Automate, n8n, or Zapier. The same TemplateId works on every platform.
How does this compare with Python PDF data extraction libraries?+
Tools like pdfplumber, PyMuPDF, and pdfminer give you raw extraction primitives in Python, but you write and maintain the matching logic yourself. PDF4me parse templates give you a saved, named template you configure once in a dashboard and call from any language or platform. Use Python libraries when you need full programmatic control inside a single codebase; use PDF4me parse templates when you want the same extraction running across the REST API, Make, Zapier, Power Automate, and n8n without copying logic between systems.
How should I test a parse template before production?+
Validate each key against at least three real samples, including edge cases such as missing optional fields, alternate fonts, multi-page documents, and second-page positions. Use Test Parse in the dashboard for each sample, confirm the output matches expectations, then run a small automation against live files in monitor mode before enabling end-to-end automation.
How do I connect this setup to no-code platforms?+
Use the platform-specific guides under Related actions. Each platform exposes the same TemplateId and ParseId fields so the parsing logic stays identical to what you tested in the dashboard. The output structure also matches across platforms.

ヘルプが必要な場合​