데이터 추출
여러 문서에서 같은 항목을 뽑아 JSON이나 CSV로 만들어요.
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.
작동 방식
- Drop up to twenty PDFs onto this page, then choose your provider and paste your API key.
- Pick a preset - invoice, receipt, ID document or bank statement - or choose your own fields and list the names you want, one per line.
- Leave the missing-fields toggle on. It is what makes an absent value come back empty instead of invented.
- Choose JSON or CSV, then press Extract. Each document is one request, and progress shows which one is running.
- 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 같은 snake_case 이름이 잘 맞아요. 기본 프리셋도 그저 평범한 항목 목록이에요. 인보이스 프리셋은 invoice_number부터 payment_terms까지 열한 개 항목을 요청해요.
- 한 번에 문서를 몇 개까지 다룰 수 있나요?
- 스무 개까지요. 각각 요청 하나씩 나가고 한 줄씩 만들어요. 글자 수 제한은 문서들이 나눠 쓰는데 기본값은 10만 자를 파일 수로 나눈 값이라, 자기 몫보다 긴 문서는 잘려요. 어떤 문서에서 해석할 수 없는 답이 오면 그 줄은 빈칸으로 채우고, 도중에 멈추는 대신 나머지를 계속해요.
- 제 인보이스는 어디로 가나요?
- 파일은 기기에 남아요. 문서의 텍스트가 내가 고른 제공자에게 문서마다 요청 하나씩, 내 브라우저가 내 키로 보내요. 그 경로에 CekPDF 서버도 CekPDF 계정도 없어서 여기서는 사본을 갖지 않아요. 신분증이나 거래내역서처럼 문서에 개인정보가 담겨 있다면, 중요한 것은 제공자의 약관이에요.
- 값이 얼마나 믿을 만한가요?
- 타이핑을 줄일 만큼은 믿을 만하지만, 확인을 건너뛸 만큼은 아니에요. 깨끗한 인보이스의 머리 항목, 그러니까 번호와 날짜, 합계는 대체로 맞게 나와요. 미끄러지는 지점은 애매할 때예요. 페이지에 날짜가 둘인데 그중 하나만 발행일이거나, 총계처럼 보이는 소계가 있거나, 세액이 두 줄에 나뉘어 있을 때죠. 온도가 0이라 적어도 실행할 때마다 답이 같아요.