PDFCraft - PDF generation and PDF extraction. No AI in either.

by
Two directions, one API key. HTML or a URL in, PDF out in ~120ms from real Chromium. PDF in, structured JSON out — tables, labelled fields, and a bounding box on every value. No OCR and no LLM, so the same document always gives the same answer.

Add a comment

Replies

Best
Maker
📌
Hi everyone — I'm Gaurav, and I built PDFCraft solo. It does two things, and they're the same problem in opposite directions. HTML → PDF. POST some HTML or a URL, get a PDF back from a real pinned Chromium. Margins, headers, footers, page ranges, wait-for-selector, authenticated pages via headers and cookies. The definition-of-done curl returns a valid PDF in 116ms — because the browser is long-lived with a fresh context per render, not launched per request. That one decision is most of the speed. PDF → JSON. POST a PDF, get its tables and labelled fields back as structured data, with a bounding box on every value so you can point at exactly where on the page a number came from. Here's the part I'd argue about in the comments: extraction uses no OCR and no LLM. It's geometric — text runs grouped into lines, lines split into columns on whitespace, a table detected as consecutive lines sharing a column count. Two consequences. The same document always produces the same JSON, byte for byte. And the cost doesn't scale with model prices, which is why 2,000 pages is $9 instead of $30. A 14-page bank statement comes back as one table of 560 rows — headers stitched, the 13 repeated ones dropped — in about 190ms. A resume I tested extracted 7 of 7 fields byte-identical to the source. What it won't do: there's no OCR. A scan has no text layer, so it returns an honest 422 and you're not billed for it. It's built for documents — invoices, statements, reports — not for scraping marketing pages. Free tier is 100/month, no card. The playground runs against the live API with a shared demo key, so you can try both directions without signing up. Happy to go deep on any of it — especially if you think the no-AI call is wrong.