Converting a French PDF to EPUB
Updated:
French punctuation survives conversion when the PDF stores real text: « » guillemets keep their inner spaces, apostrophes and accented capitals come through, and the EPUB is tagged as French. On this 22-page Wikipedia article other engines recover more continuous text than ours.
Original and result
Guillemets with spaces inside (« … »), a space before ; and :, typographic and straight apostrophes, accented capitals (É) and the œ ligature.


Download source PDF Download the sample EPUB
What the engine does with French text
French puts a space inside guillemets and before ; : ! ?. The engine keeps those spaces as the PDF has them, so a line never starts with a lone » or ; after reflowing.
The language is detected as fr and written to the EPUB, so reading apps use French hyphenation.
What the sample shows
Pages 2 and 3: the summary of the five parts of the novel, with « rédemption », titles in italics and names with accents. Page 3 has images; they are kept in the sample EPUB.
Source and licence
- Document
- Wikipedia (French): Les Misérables
- Licence
- CC BY-SA 4.0 (text); images under their own licences
- Pages
- 22
- Traits
- text PDF, one column, French
Wikipedia contributors, “Les Misérables”, French Wikipedia, PDF from the Wikimedia REST API; text licensed CC BY-SA 4.0, images under their own licences. Pages shown unmodified; the EPUB is our conversion, under the same licence.
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 2–3 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
- 22
- Time
- 0.56 s
- Peak memory
- 48 MB
- Language detected
- fr
- Chapters
- 9, from the article's headings
- Images kept
- 23
- Quality warnings
- none
| Engine | 8-gram recall |
|---|---|
| EpubCC engine (EPUB output) | 0.819 |
| EpubCC engine (plain text) | 0.820 |
| pdf_oxide · extract_text | 0.903 |
| pdf_oxide · to_plain_text (XY-cut) | 0.903 |
| pdf_oxide · Markdown | 0.751 |
| PDFium · text().all() | 0.884 |
| OpenDataLoader PDF (local mode) | 0.891 |
| pdftotext (Poppler) | 0.846 |
Limitations we observed
- pdf_oxide extract_text (0.903), OpenDataLoader (0.891) and PDFium (0.884) have a clearly higher 8-gram recall than our engine (0.819) on this document. Most of the gap is in pages with floating images and the reference list.
- Typographic (’) and straight (') apostrophes are kept as the PDF has them; the engine does not unify them.
- Wikipedia references leave out tables and infoboxes, so precision is low for every engine.