What happens when you select a PDF?
The processing workflow starts when you select a document in the live application. Application code processes the file locally in the browser instead of uploading the invoice to an application backend. The tool is intended for text-based PDFs, including multi-page documents of up to 100 pages.
A PDF may contain actual text or only scanned page images. Text-based PDFs expose selectable text for extraction; scanned and image-only PDFs need optical character recognition (OCR), which DocuExtract does not currently provide. OCR is planned for Phase 2, without a committed delivery date.
- Select the document. Choose a readable text-based PDF containing one invoice.
- Read and interpret text. The extraction logic uses document text and heuristic rules to identify fields and line items.
- Validate the structure. Extracted data is validated using Zod.
- Review the result. Check the fields and correct mistakes before export.
- Export the reviewed data. Choose the format suited to the next task.
How are invoice fields and line items detected?
Extraction is heuristic: the application applies rules to the text and layout information available from a PDF. It is not a guarantee that every vendor template, field label, or table arrangement will be interpreted correctly.
Labels and values must be on the same line or in neighbouring columns of the same row. A layout that places a label above its value is not read by the documented extraction approach. This is an important compatibility boundary when deciding which PDFs to process.
Line items are detected using column gaps and the table header. Unusual column spacing, multi-line descriptions, or atypical tables can lead to rows or values that need correction. Use the review screen to compare extracted rows with the source invoice rather than assuming that a plausible-looking spreadsheet is correct.
Numeric dates such as 05/09/2026 are interpreted as DD/MM/YYYY and flagged for confirmation. Review the date against the original document, especially when the source convention could be ambiguous.
Which export format should you choose?
DocuExtract provides three output formats with different scopes. XLSX and JSON contain the full invoice; CSV contains line items only.
XLSX
Choose XLSX when you want a spreadsheet file containing the full invoice data. Review the extracted fields and line-item rows before using the workbook in an accounting or reporting workflow.
CSV
Choose CSV when you need the line items as tabular rows. The CSV export does not contain the full invoice record, so do not use it as a complete substitute for XLSX or JSON when header-level invoice fields are required.
JSON
Choose JSON when structured invoice data is the desired output. JSON is useful for inspecting data structures or passing reviewed records into a subsequent process. Validate any downstream assumptions independently.
Exports apply formula-injection sanitization. This is a defensive measure for exported values that could otherwise be interpreted as spreadsheet formulas. It does not make inaccurate extraction accurate or replace reviewing the document.
How does the browser-processing privacy design work?
DocuExtract has no application backend, account, database, analytics or telemetry. Application code does not upload selected invoice files to a server. Users can inspect their browser's network tab to independently verify the network activity observed while processing a document.
Invoice data is never written to URLs, localStorage or sessionStorage. PDF buffers are released and documents are destroyed after processing. React rendering does not use dangerouslySetInnerHTML.
These details describe the application's documented design, not a blanket guarantee about every component of a user's device or browsing environment. Browser extensions, device compromise, operating-system access, and the hosting provider's standard server logs are separate considerations. See the privacy page and the repository's PRIVACY.md.
What file types are supported?
| PDF type | Support | Workaround or next step |
|---|---|---|
| Text-based PDF | Yes | Use the review screen and verify extracted values. |
| Multi-page PDF | Yes, up to 100 pages | Keep the file within the stated page limit. |
| Scanned or image-only PDF | Not yet | Use a text-based PDF; OCR is planned for Phase 2. |
| Password-protected or encrypted PDF | Limited | Encrypted files are rejected unless already decrypted. |
| Corrupt PDF | No | Use a valid, readable PDF. |
| Handwritten invoice | Not guaranteed | Manually verify the content; handwriting recognition is not guaranteed. |
| Multiple invoices in one PDF | Not yet | Separate the document into one invoice per PDF. Multi-invoice support is planned for Phase 2. |
What are the extraction limitations and workarounds?
DocuExtract is a practical extraction aid, not an authoritative accounting record generator. Its current boundaries should inform how you prepare documents and review results.
- Labels above values: these layouts are not read. Use a compatible invoice layout where labels and values share a line or row, or manually correct the output if the review workflow permits it.
- Ambiguous numeric dates: the app reads dates such as 05/09/2026 as DD/MM/YYYY and flags them. Confirm the date using the original invoice.
- Unusual line-item tables: column-gap and header detection may need manual correction. Compare each quantity, description and amount with the source.
- Scanned documents: OCR is not currently available. Use a text-based PDF; planned OCR is not a present capability.
- Encrypted files: encrypted PDFs are rejected unless already decrypted. Provide an accessible, decrypted document where you are authorized to do so.
- Corrupt files: the app does not support corrupt PDFs. Obtain a valid copy from the document issuer.
- Handwriting: recognition is not guaranteed. Check all handwritten fields manually and do not rely on an unverified extraction.
- Several invoices in one file: the current workflow supports one invoice per PDF. Separate the invoices before processing.
- CSV scope: CSV contains line items only. Use XLSX or JSON when you need the full invoice.
Every output must be reviewed before accounting, tax, payment or legal use. Compare important fields and totals with the original document and follow your organization's approval procedures.
Which technologies support the tool?
The application uses React 18, TypeScript, Vite, Tailwind CSS, pdf.js, ExcelJS and Zod. Tests use Vitest, Testing Library and Playwright, and deployment uses GitHub Actions.
The source is available in the DocuExtract repository. For bug reports and questions about observed behavior, use the GitHub issue tracker.
What is the current licence?
DocuExtract v1.0.0 is open source under the MIT License. The developer plans to offer future production versions under a commercial licence. Versions already released under MIT remain available under MIT.