Skip to content
Benchmark

PDF to EPUB conversion benchmark

Check the files. Compare the results.

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.

Updated:

The files, by document type

Methodology

  1. Same input. 15 PDFs, every one public domain or under a free licence, run through 8 text-extraction engines on November 3, 2026.
  2. Automated scoring. 12 of the PDFs have an independent reference text of the same document (the HTML of the Wikipedia or arXiv article, the Project Gutenberg text, or govinfo's plain-text edition), never another tool's output. Text quality is measured against it with n-gram metrics.
  3. Valid EPUB. Every EPUB our engine writes is checked with EPUBCheck: 15 of 15 had no errors.
4-gram recall
Share of the reference text's 4-word sequences found in the output: content recovered.
4-gram precision
Share of the output's 4-word sequences found in the reference: content that belongs.
8-gram recall
Like 4-gram recall with 8 words: drops when reading order or line joins break sentences (continuity).
Merged words / 1,000
Words glued to their neighbour, per 1,000 words.
Split words / 1,000
Words broken in two, per 1,000 words.
Margin leak
Share of repeated running headers, footers and page numbers left in the text.
Unmapped glyphs / 1,000
Characters reported as U+FFFD because the PDF has no Unicode for them. Reported, never hidden: a higher number can mean the engine is honest about a problem others drop silently.
Seconds
Wall time for the document.
Peak MB
Peak memory.

Results: mean per engine

Text metrics are means over the 12 documents with a reference; margin leak and unmapped glyphs over the documents where they apply. Seconds are the total for all 15 documents; peak MB is the highest single value.
EngineVersionLicence4-gram recall4-gram precision8-gram recallMerged words / 1,000Split words / 1,000Margin leakUnmapped glyphs / 1,000SecondsPeak MBFailed pages
EpubCC engine (EPUB output)
Text measured inside the EPUB the user downloads; time and memory include writing the EPUB.
EpubCC engine, commit c953279 (2026-11-03)Ours 0.8660.6630.7672.4602.0450.0715.254 15.32860
EpubCC engine (plain text)
The same layout engine before EPUB writing.
EpubCC engine, commit c953279 (2026-11-03)Ours 0.8650.6570.7652.4192.1000.9885.185 3.61010
pdf_oxide · extract_text pdf_oxide 0.3.78MIT OR Apache-2.0 0.8420.6360.7263.9850.2860.8870.525 5.72060
pdf_oxide · to_plain_text (XY-cut) pdf_oxide 0.3.78MIT OR Apache-2.0 0.8110.6090.6583.7151.2430.7940.525 5.82050
pdf_oxide · Markdown pdf_oxide 0.3.78MIT OR Apache-2.0 0.7950.6020.6537.1182.7850.1020.271 8.22020
PDFium · text().all() pdfium-render 0.9.5, PDFium chromium/8125BSD-3-Clause / Apache-2.0 0.8280.6170.7461.6592.9970.9995.971 2.61010
OpenDataLoader PDF (local mode)
Reference for heuristics; ruled out as an engine for its memory use.
opendataloader-pdf 2.5.17Apache-2.0 0.8270.6250.7492.0670.8350.0100.019 32.213580
pdftotext (Poppler)
Measuring stick only: GPL software is never shipped in EpubCC.
Poppler 25.09.1GPL 0.8410.6290.7431.9701.8400.0465.652 3.9360

Where other engines beat ours

Documents where another engine's 8-gram recall is more than 0.02 above our EPUB output. We publish these because they are what we work on next.

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

Results per document (8-gram recall)

Best value per row in bold. — means no reference text for that document.
DocumentPagesEpubCC engine (EPUB output)EpubCC engine (plain text)pdf_oxide · extract_textpdf_oxide · to_plain_text (XY-cut)pdf_oxide · MarkdownPDFium · text().all()OpenDataLoader PDF (local mode)pdftotext (Poppler)
Mistral 7B paper (arXiv 2310.06825)90.7600.7580.7670.7780.8000.8720.8590.821
Wikipedia (English): Alice's Adventures in Wonderland240.7610.7600.8000.8000.6720.7740.7810.769
Wikipedia (Spanish): Don Quijote de la Mancha500.9410.9410.9630.9630.8570.9450.9540.944
Wikipedia (French): Les Misérables220.8190.8200.9030.9030.7510.8840.8910.846
Wikipedia (German): Johann Wolfgang von Goethe860.8450.8480.8770.8770.7580.8540.8620.853
Wikipedia (Arabic): One Thousand and One Nights170.6730.6740.3150.3150.2730.0010.0000.659
Wikipedia (Japanese): The Tale of Genji670.9630.9630.9700.9700.7970.9520.9420.965
OLMo paper (arXiv 2402.00838)210.8000.8000.8540.2730.7190.7610.8200.781
QLoRA paper (arXiv 2305.14314)260.7860.7820.8170.8520.8680.9080.9170.770
Federal Register document 2026-22443450.8590.8530.3340.0350.3390.8590.8010.835
The 9/11 Commission Report (GPO)585————————
The Constitution of the United States (House Document 110-50)85————————
Economic Report of the President 2024487————————
Calculus textbook typeset in LaTeX (Project Gutenberg #33283)2920.4870.4870.4790.4960.4810.4940.5330.511
Alice's Adventures in Wonderland, 1867 printing (scan, Internet Archive)2120.5130.4940.6320.6390.5240.6510.6250.156

Documents and licences

DocumentLicenceTraitsReference text
Mistral 7B paper (arXiv 2310.06825)CC BY 4.0text PDF, one column, figures, academic paper, shortyes
Wikipedia (English): Alice's Adventures in WonderlandCC BY-SA 4.0 (text); images under their own licencestext PDF, one column, images, Englishyes
Wikipedia (Spanish): Don Quijote de la ManchaCC BY-SA 4.0 (text); images under their own licencestext PDF, one column, images, Spanishyes
Wikipedia (French): Les MisérablesCC BY-SA 4.0 (text); images under their own licencestext PDF, one column, Frenchyes
Wikipedia (German): Johann Wolfgang von GoetheCC BY-SA 4.0 (text); images under their own licencestext PDF, one column, Germanyes
Wikipedia (Arabic): One Thousand and One NightsCC BY-SA 4.0 (text); images under their own licencestext PDF, one column, Arabic, right-to-leftyes
Wikipedia (Japanese): The Tale of GenjiCC BY-SA 4.0 (text); images under their own licencestext PDF, one column, Japanese, CJKyes
OLMo paper (arXiv 2402.00838)CC BY 4.0text PDF, two columns, tables, footnotes, figures, academic paperyes
QLoRA paper (arXiv 2305.14314)CC BY 4.0text PDF, one column, tables, footnotes, academic paper, longyes
Federal Register document 2026-22443Public domain (work of the U.S. Government)text PDF, three columns, repeated headers, footnotesyes
The 9/11 Commission Report (GPO)Public domain (work of the U.S. Government)text PDF, book, chapters, repeated headers, endnotes, long, load testno
The Constitution of the United States (House Document 110-50)Public domain (work of the U.S. Government)text PDF, book, repeated headers, table of contentsno
Economic Report of the President 2024Public domain (work of the U.S. Government)text PDF, book, tables, charts, boxes, footnotes, longno
Calculus textbook typeset in LaTeX (Project Gutenberg #33283)Public domain in the U.S. (Project Gutenberg; its trademark only under its licence)text PDF, book, chapters, repeated headers, footnotes, formulasyes
Alice's Adventures in Wonderland, 1867 printing (scan, Internet Archive)Public domain (1867; University of Toronto scan on the Internet Archive)scanned, OCR layer, book, chapters, illustrationsyes

Limits of these numbers

  • 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.

Data

Share LinkedIn X Reddit Email