跳到正文

提取数据

从一叠文档里取出相同的字段,存为 JSON 或 CSV。

文本会发送到 AI 服务

你的 PDF 从不上传。文本在你的浏览器中提取、展示给你,只有在你同意后才会发送。

这款工具的作用

This reads a set of documents and returns one row each, carrying the fields you asked for. Text is extracted in your browser and sent to the AI provider you choose with your own key; the files themselves never leave your device. The output is a JSON array or a CSV, with a _file column so every row says which document it came from.

It exists for the batch: twenty supplier invoices that have to become twenty rows in a ledger, a month of receipts before an expense claim, bank statements you want opening and closing balances from, or a folder of ID documents whose numbers need typing into a system.

工作原理

  1. Drop up to twenty PDFs onto this page, then choose your provider and paste your API key.
  2. Pick a preset - invoice, receipt, ID document or bank statement - or choose your own fields and list the names you want, one per line.
  3. Leave the missing-fields toggle on. It is what makes an absent value come back empty instead of invented.
  4. Choose JSON or CSV, then press Extract. Each document is one request, and progress shows which one is running.
  5. Download the file. Every row has the same columns, in the order you asked for them, whether or not each document had them.

Leaving missing fields empty is the most important setting on this page, and it is on by default. Asked for an invoice number, a language model will produce one whether or not the document has one, and a plausible invented invoice number is far more damaging than a blank cell - it is wrong in a way nobody notices until a payment goes to the wrong place. With the setting on, the instruction is explicit: where a value is not clearly present, return nothing, and never estimate. Turn it off only when you want values the document implies but does not state.

Every row comes back with exactly the keys you asked for, in the order you asked for them, present in the document or not. Missing values become null in JSON and an empty cell in CSV. That is what makes the CSV open cleanly in a spreadsheet: rows of differing shapes make columns drift, and a total in one row ends up under a date in the next. If a model's answer cannot be parsed at all, that row is filled with blanks rather than aborting a twenty-file batch at file eleven.

Temperature is fixed at zero, because extraction is not a creative task and the same invoice should give the same answer twice. Numbers are requested as bare numbers, without currency symbols or thousands separators, and dates as ISO 8601 strings, so the CSV sorts and sums without a cleaning pass. The CSV is quoted to RFC 4180, which stops a supplier name with a comma in it from splitting a column.

The text arrives in reading order with the layout flattened, and that is a real limit on what can be pulled out. A total in the bottom-right corner of an invoice reads fine; a multi-column table of line items arrives as a stream of cells with nothing marking which column each belonged to. It is why the presets ask for header-level fields - totals, dates, parties - rather than line items. For a table you genuinely need as a table, PDF to Excel reconstructs the grid instead.

这款工具做不到的事

  • The documents' text is sent to the AI provider you choose. The files themselves are not.
  • Line-item tables do not extract reliably, because the text arrives in reading order without column boundaries. Use PDF to Excel for a table you need as a table.
  • Even with missing fields left empty, a value can be read from the wrong place - a delivery date taken for an invoice date. Spot-check rows against the documents before using them.
  • A scanned PDF has no text to read. Run OCR a PDF over it first.

常见问题

“把找不到的字段留空”会做什么?
它告诉模型:文档里没有清楚出现的值必须留空返回,而编造一个看似合理的值算作缺陷,而非帮忙。它默认开启,因为空单元格是你立刻能看见的问题,而捏造的发票号要很久以后才发现。只有当你想要文档暗示却未明说的值时,才关掉它。
我能选择自己的字段吗?
能。把预设设为你自己的字段,用逗号或换行分隔列出名称——一行一个最便于回看。这些名称会原样成为 JSON 的键和 CSV 的表头,所以像 purchase_order_number 这样的蛇形命名很合适。内置预设也不过是普通的字段列表;发票预设要求十一个字段,从 invoice_number 到 payment_terms。
我一次能处理多少份文档?
最多二十份,每份各自一次请求,各出一行。它们之间共享字符上限——默认是 100,000 除以文件数——超过配额的文档会被切断。如果某份文档给出无法解析的答案,那一行会用空白填充,批处理继续,而不是中途失败。
我的发票会去哪里?
文件留在你的设备上。它们的文字发给你选定的服务商,每份文档一次请求,由你的浏览器用你自己的密钥发送。这条路径上没有 CekPDF 的服务器,也没有 CekPDF 账户,所以这里不留任何副本。如果文档带有个人信息——身份证件和银行对账单就带有——真正要紧的是你服务商的条款。
这些值有多可靠?
可靠到能省去录入,但没可靠到能省去核对。一份干净发票上的表头级字段——号码、日期、金额——多数时候返回正确。出错的地方在于含糊:页面上有两个日期而只有一个是发票日期,一个看着像总额的小计,分成两行的税额。温度为零,所以至少各次运行之间答案一致。

相关工具