For readers who save papers, reports and scans
Read the PDF, not a guess at it.
Every page is rasterised at 300 DPI and read by Tesseract. Language models then clean the text up, and each pass is checked against the raw scan before it is allowed to ship.
Paste a PDF link and read the result. No account, no download.
How a PDF becomes text
Three stages, and each one can be thrown away.
-
1
Every page is rasterised
Each page is rendered to a 300 DPI image and read by Tesseract. This happens whether or not the PDF claims to have a text layer, so a scan with no text layer is the ordinary case rather than a special one.
-
2
Three passes clean it up
One language-model pass fixes OCR noise, a second reviews a word-level diff of those edits, and a third turns the result into structured HTML.
-
3
Each pass is checked against the raw scan
If a check fails, that pass is discarded and the text from the stage below it is kept. A rejected rewrite never reaches you.
What the checks actually check
This is the part worth being precise about, because a language model in a pipeline usually means the opposite.
Three deterministic checks run against the raw Tesseract output after each language-model pass: every run of digits must match exactly, the total length must stay within 30 percent, and the line and blank-line structure must be unchanged.
The digit check is the one that earns its place. Dates, page numbers, citations, figures and table values are what a language model is most likely to quietly alter, and what a reader is least likely to catch. If they change, the pass is dropped.
This is not a guarantee that no word ever changes. A same-length substitution of one non-numeric word for another passes all three checks. The narrower claim is the true one: altered numbers are caught, and a rejected rewrite is discarded rather than shipped.
What this does not do
- Tesseract is configured with the Latin script pack only. Scans in Chinese, Arabic, Cyrillic or other non-Latin scripts will not extract.
- PDFs up to 300 pages and 500 MB. Past either limit the file is rejected rather than partly processed.
- If more than 20 percent of pages fail OCR the whole extraction is rejected. Below that, failed pages appear as OCR-unavailable markers.
- Non-numeric words can still change within the length and structure bounds. The checks catch altered numbers, not every altered word.
- Every page is re-rasterised even when the PDF has a clean text layer, which costs time that reading the text layer would have saved.
- Extraction runs after the page opens, so a long PDF takes a few minutes to fill in.
Questions
- Does this work on scanned PDFs?
- Yes, and that is the ordinary case. Extraction never reads the PDF's text layer — every page is read from its pixels — so a scan without a text layer works the same way as anything else.
- Can the language model make things up?
- It can change words, and the checks are built around that. Every run of digits must survive a pass unchanged, the total length must stay within 30 percent, and the line structure must match. A pass that fails any of those is discarded and the rawer text underneath is kept.
- What languages work?
- Latin scripts. Tesseract is installed with the Latin script pack only, so Chinese, Arabic, Cyrillic and other non-Latin scans will not extract.
- How big a PDF can I save?
- Up to 300 pages and 500 MB. Past either limit the file is rejected outright.
- Do I need an account to try it?
- No. Paste a PDF link into the reader and read the result.
Try it on a PDF you already have
Paste a link and read the extraction. No account required.