What is the best free PDF to EPUB converter?
Updated:
For a simple, single-column PDF with clean text, such as a novel, Calibre is free, runs on your own computer and is often enough. For columns, repeated headers, footnotes or long books, test converters on your own file: EpubCC's free sample converts up to 5 pages, and our public benchmark shows where each engine we measured wins and loses.
When a free tool is enough
- One column of running text, with few headers and notes.
- You are comfortable checking the result and fixing a few paragraphs by hand.
- You don't mind installing desktop software. Calibre is open source and costs nothing.
When to test more carefully
- Two or three columns, where lines from different columns can be glued together.
- Running headers and page numbers that end up in the middle of sentences.
- Footnotes you want linked rather than pasted into the text.
- Long books, where fixing problems by hand takes hours.
- Right-to-left or CJK text, where reading order and text direction matter.
Free, but what about privacy?
A desktop tool keeps the file on your computer. With an online converter, read what happens to your upload: EpubCC never publishes files, never uses them for training, and deletes them automatically on a fixed, published schedule.
How to compare converters fairly
Use the same PDF in each tool, open the result on the device you read on, and look at the hard pages: a page with columns, one with notes, one with a chapter start. Count sentences cut in half and headers left in the text.
Our benchmark does the same on a public corpus with independent reference texts. It currently covers our engine, PDFium, pdf_oxide, OpenDataLoader and pdftotext; Calibre has not been measured there yet, so we make no claim about how it scores. The table below is the continuity metric from that benchmark.
Evidence from the benchmark
| Engine | 8-gram recall |
|---|---|
| EpubCC engine (EPUB output) | 0.767 |
| EpubCC engine (plain text) | 0.765 |
| pdf_oxide · extract_text | 0.726 |
| pdf_oxide · to_plain_text (XY-cut) | 0.658 |
| pdf_oxide · Markdown | 0.653 |
| PDFium · text().all() | 0.746 |
| OpenDataLoader PDF (local mode) | 0.749 |
| pdftotext (Poppler) | 0.743 |
Try 5 pages free
Convert up to 5 pages free, no account needed.