Models that can read PDF files directly extracted all 644 cells in OpenRouter’s five-document test set, including two scanned files and a table spanning multiple pages. The tutorial pairs each PDF with a strict JSON schema so quantities return as numbers and formatting such as parentheses can be normalized into negative values.
The more important finding was that delivery routes failed differently from the models. A scanned document sent through one free parser returned zero rows with a normal response and no error. Long tables could also stop at the output-token limit while still returning a partial structure. OpenRouter recommends rejecting empty results and any response whose finish reason indicates a length limit.
The test documents were generated from known data: an invoice, a quarterly report, a shipment log, a purchase order and a deliberately rough scan. That makes cell-level checking possible, but it is a small synthetic set rather than proof of reliable extraction across arbitrary business documents.
A conventional PDF library remains simpler when a clean text layer and stable layout are available. Model-based extraction is most useful when scans, merged cells or changing layouts defeat fixed rules. Production systems still need totals, row counts and domain constraints to catch plausible structured output that does not match the source.