把每张发票的每条明细都抽出来。
发票号、日期、供应商信息、每一条带数量和单价的明细行、每行的增值税以及对得上的合计 —— 任意版式、任意币种、任意语言。
实时演示
在真实文档上看效果。
点击右侧任一字段,我们会在左侧高亮它的来源位置。
Extracted fields
Line items
| Quantity | Subtotal | Tax rate | Unit price | Description |
|---|---|---|---|---|
示例数据。真实引擎输出。
概览
什么是发票数据抽取?
发票数据抽取就是把无结构的发票 PDF 和扫描件,变成财务系统能读的结构化数据 —— 发票号、开票日期、供应商信息、每一条明细行,以及底部的合计。过去一份文档要花五分钟手敲的活儿,现在引擎几秒就能跑完,输出的是干净的 Excel/JSON,而不是复制粘贴进电子表格的零散字段。
在一张典型发票上,Ztract 会返回 发票号、开票日期、到期日期 和 采购订单号;供应商的 公司名称 和 账单地址;完整的 明细行表格,含描述、数量、单价和每行税率;以及三个可核对的合计 —— 小计、税额合计 和 含税合计。上方样本是一张 9 行的法语发票,增值税 20% —— 每个值都锚定到页面位置,审核人员一键即可核对。
引擎不依赖模板。新供应商的版式第一次上传就能跑通 —— 不用写规则,不用按供应商配置。法语、西班牙语、日语或阿拉伯语的发票按印刷文字读取;币种在输出中保持各自的形态,不会被悄悄统一;每行的增值税会留在它所属的那一行。如果引擎实在无法返回一个干净的值,那一页会退回到你的页数套餐里。
难点
这里为什么并不简单。
这一类文档比表面更难处理的几个原因 —— 以及我们的应对方式。
-
跨页的明细行
表格不会在页面结束时结束。表头会重复,合计只出现在最后一页 —— 我们把整张表拼回一个干净的数组。
-
逐行税率不同
商品 0%、服务 20%、运费 10% —— 全在一张发票上。税率会跟着它所属的行,而不是被汇总到页脚里。
-
多币种、多语言
发票用 USD,付款说明用 EUR;描述是法语,合计是数字 —— 币种和文字都会被保留下来,而不是被规范化掉。
-
区分 Subtotal 和 Total
不同供应商把 TOTAL 印在不同位置,含义也不同。我们靠上下文判断,而不是靠位置,挑出正确的那个。
谁在用
这些工作流用得上。
-
应付账款
把已审批的发票自动喂进 NetSuite、QuickBooks 或任意 ERP —— 没人需要再手动敲明细行。
-
财务
按税号、品类、币种汇总供应商支出 —— 从过去会计要手工录入的 PDF 里直接出数。
-
合规
每个值都保留与原文 bbox 的关联 —— 审计任何数字,点一下就能核对。
常见问题