Skip to content
Fix

Fix mixed-up columns in a PDF-to-EPUB conversion

Columns get mixed up when a converter reads each line straight across the page, so every line joins half a sentence from one column with half a sentence from the next. EpubCC finds the gaps between columns and reads each column top to bottom before moving to the next.

Try five pages from your PDF before converting the full book.

Updated:

PDF → EPUB

Choose your PDF or drop it here. The free sample covers 5 pages.

Text-based PDFs only, up to 200 MB. Scans are not supported yet.
Large files upload in resumable pieces: a dropped connection doesn't start over.

Private files. Never used for training. Deleted automatically, or right away when you press Delete now.

See the difference in reading.

Original PDF
A page of the original PDF: Federal Register document 2026-22443
EPUB
The same passage in the EPUB made by EpubCC
Real conversion from the case Three-column PDF to EPUB: the Federal Register · Federal Register document 2026-22443

Why it happens

A PDF stores characters with positions, not columns. Some converters follow the order in which the PDF draws the text, others sweep each line from left to right; on a two- or three-column page both can mix the columns, and the result reads like nonsense.

How EpubCC keeps the columns apart

  • It looks for vertical channels of white space that run down the page and splits the page into columns there, then reads each column in order.
  • Running headers, page numbers and rotated text in the margin are detected separately, so they don't break the columns.
  • Paragraphs that continue from the bottom of one column to the top of the next are joined.

Where it still fails

  • On a two-column arXiv paper in our benchmark, another engine (pdf_oxide's extract_text) keeps more continuous text than ours. The two-column case shows the numbers.
  • Tables are read as text in reading order; they are not rebuilt as tables.
8-gram recall · Like 4-gram recall with 8 words: drops when reading order or line joins break sentences (continuity). Higher is better. Mean over the documents of the benchmark of November 3, 2026. Methodology and every result
Engine8-gram recall
EpubCC engine (EPUB output)0.767
EpubCC engine (plain text)0.765
pdf_oxide · extract_text0.726
pdf_oxide · to_plain_text (XY-cut)0.658
pdf_oxide · Markdown0.653
PDFium · text().all()0.746
OpenDataLoader PDF (local mode)0.749
pdftotext (Poppler)0.743

PDFs with selectable text only. Scanned PDFs are not supported yet.

FAQ

Is it free?

Every file gets a free sample of up to 5 pages before you pay anything, so you can judge the result on your own book. The Free plan converts up to 100 pages a month; Pro and Business convert more.

Will the EPUB be perfect?

No converter can promise that, and we don't. When the engine detects problems (unreadable glyphs, doubtful reading order) it shows a warning instead of hiding it, and the sample shows you the hard parts before you pay.

Should I use Calibre instead?

If your PDF is a simple single-column text, Calibre's free converter may be enough. EpubCC is for the hard cases: broken paragraphs, repeated headers and page numbers, footnotes, columns and chapters.