# PDF to EPUB conversion benchmark (2026-11-03)

Source: https://epubcc.com/benchmark/ · data: https://epubcc.com/benchmark/data/2026-11-03.json

In EpubCC's benchmark of November 3, 2026, the EpubCC engine reached a mean 8-gram recall of 0.767 on 12 PDFs with an independent reference text, against 0.743 for pdftotext and 0.746 for PDFium; 15 of its 15 EPUBs passed EPUBCheck with no errors.

## Mean per engine

| Engine | Version | 4-gram recall | 4-gram precision | 8-gram recall | Merged words / 1,000 | Split words / 1,000 | Margin leak | Unmapped glyphs / 1,000 |
|---|---|---|---|---|---|---|---|---|
| EpubCC engine (EPUB output) | EpubCC engine, commit c953279 (2026-11-03) | 0.866 | 0.663 | 0.767 | 2.460 | 2.045 | 0.071 | 5.254 |
| EpubCC engine (plain text) | EpubCC engine, commit c953279 (2026-11-03) | 0.865 | 0.657 | 0.765 | 2.419 | 2.100 | 0.988 | 5.185 |
| pdf_oxide · extract_text | pdf_oxide 0.3.78 | 0.842 | 0.636 | 0.726 | 3.985 | 0.286 | 0.887 | 0.525 |
| pdf_oxide · to_plain_text (XY-cut) | pdf_oxide 0.3.78 | 0.811 | 0.609 | 0.658 | 3.715 | 1.243 | 0.794 | 0.525 |
| pdf_oxide · Markdown | pdf_oxide 0.3.78 | 0.795 | 0.602 | 0.653 | 7.118 | 2.785 | 0.102 | 0.271 |
| PDFium · text().all() | pdfium-render 0.9.5, PDFium chromium/8125 | 0.828 | 0.617 | 0.746 | 1.659 | 2.997 | 0.999 | 5.971 |
| OpenDataLoader PDF (local mode) | opendataloader-pdf 2.5.17 | 0.827 | 0.625 | 0.749 | 2.067 | 0.835 | 0.010 | 0.019 |
| pdftotext (Poppler) | Poppler 25.09.1 | 0.841 | 0.629 | 0.743 | 1.970 | 1.840 | 0.046 | 5.652 |

## Where other engines beat ours (8-gram recall)

- Wikipedia (English): Alice's Adventures in Wonderland: pdf_oxide · extract_text 0.800 vs EpubCC 0.761
- Wikipedia (Spanish): Don Quijote de la Mancha: pdf_oxide · extract_text 0.963 vs EpubCC 0.941
- Wikipedia (French): Les Misérables: pdf_oxide · extract_text 0.903 vs EpubCC 0.819
- Wikipedia (German): Johann Wolfgang von Goethe: pdf_oxide · extract_text 0.877 vs EpubCC 0.845
- OLMo paper (arXiv 2402.00838): pdf_oxide · extract_text 0.854 vs EpubCC 0.800
- Mistral 7B paper (arXiv 2310.06825): PDFium · text().all() 0.872 vs EpubCC 0.760
- QLoRA paper (arXiv 2305.14314): OpenDataLoader PDF (local mode) 0.917 vs EpubCC 0.786
- Calculus textbook typeset in LaTeX (Project Gutenberg #33283): OpenDataLoader PDF (local mode) 0.533 vs EpubCC 0.487
- Alice's Adventures in Wonderland, 1867 printing (scan, Internet Archive): PDFium · text().all() 0.651 vs EpubCC 0.513

## Documents and licences

- Mistral 7B paper (arXiv 2310.06825) (9 pages): CC BY 4.0
- Wikipedia (English): Alice's Adventures in Wonderland (24 pages): CC BY-SA 4.0 (text); images under their own licences
- Wikipedia (Spanish): Don Quijote de la Mancha (50 pages): CC BY-SA 4.0 (text); images under their own licences
- Wikipedia (French): Les Misérables (22 pages): CC BY-SA 4.0 (text); images under their own licences
- Wikipedia (German): Johann Wolfgang von Goethe (86 pages): CC BY-SA 4.0 (text); images under their own licences
- Wikipedia (Arabic): One Thousand and One Nights (17 pages): CC BY-SA 4.0 (text); images under their own licences
- Wikipedia (Japanese): The Tale of Genji (67 pages): CC BY-SA 4.0 (text); images under their own licences
- OLMo paper (arXiv 2402.00838) (21 pages): CC BY 4.0
- QLoRA paper (arXiv 2305.14314) (26 pages): CC BY 4.0
- Federal Register document 2026-22443 (45 pages): Public domain (work of the U.S. Government)
- The 9/11 Commission Report (GPO) (585 pages): Public domain (work of the U.S. Government)
- The Constitution of the United States (House Document 110-50) (85 pages): Public domain (work of the U.S. Government)
- Economic Report of the President 2024 (487 pages): Public domain (work of the U.S. Government)
- Calculus textbook typeset in LaTeX (Project Gutenberg #33283) (292 pages): Public domain in the U.S. (Project Gutenberg; its trademark only under its licence)
- Alice's Adventures in Wonderland, 1867 printing (scan, Internet Archive) (212 pages): Public domain (1867; University of Toronto scan on the Internet Archive)

## Limits of these metrics

- The margin-leak metric is only reliable for engines that split lines like pdftotext -layout; it is not reliable for OpenDataLoader, pdf_oxide Markdown or pdftotext without -layout.
- Wikipedia references leave out tables and infoboxes, so precision is low for every engine alike on those documents.
- The 1867 Alice scan is compared with a different edition (Project Gutenberg, 1865): it is good for recall, not for exact precision. It is read through the PDF's own OCR layer; EpubCC does not do OCR yet.
- Text-quality averages cover only the 12 documents with an independent reference text (HTML, Gutenberg text or govinfo plain text of the same document, never another tool's output). The other 3 report time, memory, failed pages, unmapped glyphs and margin leak.
- These metrics measure extracted text. They do not measure chapter detection, footnote linking or how the EPUB looks on a reader; EPUBCheck validity is reported separately for our EPUB output.
- Calibre is not part of this run.
