准备文档解析信息
本指南涵盖的内容
准备解析信息 是仪表板设置,它将原始数据转换为原始数据。 PDF 进入 自动化 PDF 数据提取您可以定义捕获键,在示例文档上绘制区域,并使用以下任一方式为每个键分配提取规则: 正则表达式 对于稳定模式或 JavaScript 表达 用于条件逻辑。保存后,同一个模板将从此处运行。 REST API, Make, Zapier, Power Automate, 和 n8n 通过提及它 模板 ID。
验证您的设置
解析模板的创建发生在 PDF4me 开发者控制面板。使用您的帐户登录,然后创建或复制一个 API 解析文档的键 API 使用您在此处创建的模板的调用。
您不容错过的重要事实
模板 ID 用于模板。始终传递 模板 ID 生产中 API 电话。 模板名称 这样做也行,但是重命名模板会破坏任何通过名称引用它的自动化操作。步骤 1:创建解析模板
- 打开 解析文档仪表板。
- 点击 添加 并输入一个清晰的模板名称(例如,
invoice或者vendor-statement)。 - 点击 节省 创建空白模板。
- 打开模板 编辑 进入配置捕获密钥的模式。

步骤 2:上传样本并配置捕获密钥
仪表盘会显示已上传的内容。 PDF 右侧显示了 解析信息 左侧是表格。使用真实的生产环境样本,而不是合成测试文件,这样捕获区域才能与实际交通中的情况相匹配。
- 点击 上传模板文件 并挑选一个有代表性的样本(发票、合同、表格)。
- 在下面 钥匙, 点击 + 添加捕获键。请用驼峰命名法给它命名:
invoiceNumber,customerName,totalAmount。 - 选择 选择表达式类型 关键在于:
Javascript Expression或者Regex Expression。 - 将表达式正文粘贴到出现的字段中。
- 放 页 到
all扫描每一页,或扫描到特定的页码(1,2等等)以限制范围。 - 切换 搜索整页 当该值不在固定位置时启用。禁用时,仅搜索绘制的捕获区域。

解析文档设置界面。左图:包含键和表达式类型的解析信息表单。右图:已上传的示例 PDF操作按钮从左到右依次为:上传模板文件、测试解析、保存更改。
步骤 3:为每个键选择表达式类型
| 表达式类型 | 最适合 | 典型用途 | 复杂 |
|---|---|---|---|
| Regex Expression | Fixed text patterns | Invoice number, dates, totals, tax IDs, postal codes | Low |
| JavaScript Expression | Conditional and multi-rule extraction | Document classification, fallback logic, rule orchestration | Medium 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);
实施提示: 将你的逻辑封装在一个命名函数中,并用以下方式调用它: 返回函数名(文本); 在底部。仪表板将表达式主体作为函数执行,其最终返回值填充到键中。
步骤 4:测试解析并保存更改
编辑器顶部的操作按钮从左到右排列,顺序与使用顺序一致:
- 上传模板文件 加载样本 PDF 用于绘制捕获区域。
- 测试解析 对上传的样本运行所有键值对,并将提取的值直接显示。使用此功能可验证每个正则表达式或 JavaScript 保存前请先输入表达式。
- 保存更改 持久化模板并分配一个稳定的 TemplateId (GUID)。复制该 GUID 以供使用。 API 呼叫和自动化平台。
遍历每个键直到 测试解析 返回每个字段的预期值。如果看到相邻文本,请缩小捕获区域;如果模式匹配过于宽松,请优化表达式。
使用模板 API 或自动化呼叫
一次 保存更改 分配一个 TemplateId同一个解析模板可以通过引用在任何位置运行。您无需在每个平台上重新创建配置。
| 场地 | 来源 | 目的 |
|---|---|---|
TemplateId | 保存后,模板详细信息面板中会显示 GUID。 | 用于生产自动化的稳定标识符。始终优先选择此标识符。 TemplateName。 |
TemplateName | 您在步骤 1 中输入的名称 | 查找的替代方法。重命名模板会破坏按名称引用它的调用。 |
ParseId | 客户端生成的 GUID(每次调用生成一个) | 将您的请求与解析输出关联起来,这对于日志记录和审计跟踪非常有用。 |
docName | 来源 PDF 文件名 | 用于跟踪和错误消息。 |
docContent | 来源 PDF 编码为 Base64 | 待解析的文件。 |
async | false 对于同步, true 用于民意调查 | 控制响应的传递。 |
例子 REST 请求正文:
{
"docName": "invoice.pdf",
"docContent": "BASE64_ENCODED_PDF_CONTENT",
"TemplateId": "12345678-1234-1234-1234-123456789abc",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": false
}
响应中包含模板中定义的每个键对应的字段。路由该响应。 JSON 进入任何下游节点: Google Sheets, Airtable数据库、Excel 表格或 webhook。
常用工作流程
典型的解析模板模式How a saved parse template moves from dashboard to production.
- 供应商发票 PDF 到达受监控的电子邮件或云文件夹。
- Make, Zapier, Power Automate, 或者 n8n 调用 Parse Document 并传入您的 TemplateId。
- 结构化的 JSON 输出(发票号、总金额、发票日期)将作为一行追加到 Google Sheets 或Excel。
- 会计部门直接通过电子表格进行审核和批准。
- 客户上传了一份已填写的表格。 PDF 通过您的门户网站填写表格。
- 您的后端调用 Parse Document 函数 TemplateId 以及 Base64 PDF。
- 已解析 JSON 映射到数据库 INSERT 语句,每个模板键对应一列。
- 系统会使用解析后的姓名和参考编号向客户发送确认邮件。
- 一个受监控的文件夹接收混合文档(发票、订单、合同)。
- A JavaScript 模板中的表达式键返回文档类型(参见上面的示例 2)。
- 您的工作流程会根据返回的文件类型,将每个文件路由到正确的下游系统。
- 被识别为发票的文件将继续在同一模板调用中进行基于正则表达式的字段提取。
模板配置最佳实践
- 绘制捕获区域略大于预期值,以防止字体或位置偏移将值推出画面。
- 在所有模板中保持关键名称使用驼峰命名法一致,以便电子表格、数据库和 Webhook 中的下游映射保持可预测性。
- 每个键都至少针对三个真实样本进行测试,包括缺少可选字段、第二页发票等极端情况,以及 OCR从扫描件中提取的文本 PDFs。
- 使用 JavaScript 仅当正则表达式无法表达规则时才使用表达式。保持逻辑简洁有助于模板的调试。
- 按名称对模板进行版本控制(
invoice-v1,invoice-v2)在进行重大变更时,以便生产自动化能够按自己的节奏迁移。 - 运行扫描 PDFs 通过 OCR 首先( PDF4me OCR 解析之前,先读取端点。模板从文本层提取,该文本层已扫描。 PDFs 直到 OCR 已应用。