Skip to content
Use case

Converting a scanned PDF: what you get today

Updated:

EpubCC does not do OCR yet. A scanned page with no text layer is left out with a warning; a scan that already carries an OCR layer is converted from that hidden text, with its errors. On an 1867 Alice scan our 8-gram recall is 0.513, below PDFium (0.651) and pdf_oxide (0.632).

Try 5 pages free

Original and result

A photographed 1867 book: every page is an image, with an invisible OCR text layer added by the scanning project. The OCR has misread words, split lines and put illustration captions in the middle of the text.

Original PDF
Page of the original PDF
Result (EPUB, as a reader shows it)
The same passage in the converted EPUB

Download source PDF Download the sample EPUB

Scanned or not: how the engine decides

A page counts as scanned when one image covers the whole page and there is no selectable text. The engine does not decode those images (that is where OCR would start) and reports the page numbers in the quality report, before you pay for anything.

When the scan has a text layer, the engine treats it like any other text. It cannot know that the text came from an old OCR pass, so the result is only as good as that OCR.

What to do with a scanned book today

Run OCR first with a tool you trust, then convert the result; or keep the PDF. OCR is planned as a separate route; this page will change when it exists.

Source and licence

Document
Alice's Adventures in Wonderland, 1867 printing (scan, Internet Archive)
Licence
Public domain (1867; University of Toronto scan on the Internet Archive)
Pages
212
Traits
scanned, OCR layer, book, chapters, illustrations

Lewis Carroll, Alice's Adventures in Wonderland, Macmillan, 1867 printing (public domain); scan and OCR by the University of Toronto, published on the Internet Archive (alicesadventu00carr).

Settings used

  • Engine: EpubCC engine at commit 3b74b26, the binary that generated the images and the sample (2026-11-04).
  • Pages: the whole document for the figures; pages 20–21 for the images and the sample EPUB.
  • Benchmark figures: the published run of 2026-11-03 (engine commit c953279).
  • Options: none. The engine has no per-document settings yet; the same defaults apply to every file.

Validation and results

EPUBCheck EPUBCheck on our EPUB: 0 errors, 0 warnings.

EPUBCheck 5.4.0 on the downloadable sample: 0 errors, 0 warnings (checked 2026-11-04).

Pages
212
Time
0.87 s
Peak memory
284 MB
Pages left out as scans
14
Chapters
132 (false headings from the OCR layer)

Quality warnings the engine showed:

  • 14 pages look scanned (a full-page image and no selectable text) and are left out: 1, 3–8, 10, 14, 16, 209–212. OCR conversion is not available yet.
8-gram recall · Like 4-gram recall with 8 words: drops when reading order or line joins break sentences (continuity). Methodology
Engine8-gram recall
EpubCC engine (EPUB output)0.513
EpubCC engine (plain text)0.494
pdf_oxide · extract_text0.632
pdf_oxide · to_plain_text (XY-cut)0.639
pdf_oxide · Markdown0.524
PDFium · text().all()0.651
OpenDataLoader PDF (local mode)0.625
pdftotext (Poppler)0.156

Limitations we observed

  • No OCR: pages that are only an image are left out of the EPUB, and the report lists them (14 here: covers, plates and library pages).
  • OCR errors in the PDF are copied, not corrected: «MAKMALADE» for MARMALADE, «I Ve» for I've.
  • Words the OCR placed on a slightly different baseline become superscripts, and chapter openings with drop caps produce false headings (132 «chapters» instead of 12).
  • PDFium (0.651), pdf_oxide (0.632) and OpenDataLoader (0.625) recover more of this OCR text than our engine (0.513).
  • The reference is a different edition (Project Gutenberg, 1865): good for recall, not for exact precision.

Convert a similar PDF

Share LinkedIn X Reddit Email