Remove repeated headers and page numbers from a converted PDF
Running headers, footers and page numbers end up in the middle of sentences when a converter copies every line of the PDF. EPUBLab compares pages, finds the short lines that repeat at the top and bottom, and removes them along with bare page numbers.
Try five pages from your PDF before converting the full book.
Updated:
Private files. Never used for training. Deleted automatically, or right away when you press Delete now.
See the difference in reading.


Why it happens
In a PDF the book title, the chapter name and the page number are just more text on each page. A converter that doesn't compare pages can't tell them from the body, so they land between two halves of a sentence every time the page turns.
How EPUBLab removes them
- Short blocks in the top or bottom 12% of the page that repeat on at least 3 pages are treated as margins (digits and roman numerals are normalised, so “Page 12” and “Page 13” count as the same line).
- A block that is only a page number is removed wherever it appears in the margin.
- The sentence interrupted by the page break is then joined back together.
What the benchmark shows
The margin-leak metric is the share of repeated margin lines left in the text. It is only reliable for engines that split lines the way pdftotext -layout does, so read it as a guide, not a ranking.
| Engine | Margin leak |
|---|---|
| EPUBLab engine (EPUB output) | 0.071 |
| EPUBLab engine (plain text) | 0.988 |
| pdf_oxide · extract_text | 0.887 |
| pdf_oxide · to_plain_text (XY-cut) | 0.794 |
| pdf_oxide · Markdown | 0.102 |
| PDFium · text().all() | 0.999 |
| OpenDataLoader PDF (local mode) | 0.010 |
| pdftotext (Poppler) | 0.046 |
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.