My PDF converter turned every borderless table into loose numbers. The fix runs on a CPU.
Description and use
The PDF converter initially failed to preserve table structure, producing loose numbers and broken paragraphs. By integrating Camelot for borderless tables, splitting multi‑line cells, and using Tesseract OCR for scanned pages, it now accurately generates Markdown tables and formats lists, completing the task in 23 seconds on one CPU for $0.001.
Problem
The initial PDF converter failed to preserve table structure, producing loose numbers and broken paragraphs, especially for borderless tables, dense budget tables, scanned pages, and two‑column articles.
Outcome
The updated converter accurately extracts tables and scanned content, achieving near‑ML quality for key tables while remaining inexpensive ($2 per 1,000 pages) and fast (23 s on one CPU).
Workflow
- Run Actor via Apify API
- Use Camelot stream mode on numeric pages
- Split multi‑line cells into rows
- Rebuild Markdown from Tesseract OCR for scanned pages
- Map OCR bullet characters to dashes
- Discard non‑numeric two‑column prose
- Return Markdown chunks with metadata
Evidence
My converter lost on the two things that mattered. On both tables the cells came out one per line, so the budget became a long column of loose numbers.
Camelot's "stream" mode (MIT licensed) finds those columns from the spacing alone, in 0.1 to 0.3 seconds a page on one CPU.
After the changes, on the same four files: three tables on the two-page borderless report, the budget as one nine-column table with the same rows as the ML converter, the scanned page with its list and headings. All of it took 23 seconds on one CPU, 21 of them OCR.
- Record date: 2026-10-11T20:10:52.221Z