eBook to PDF

Lay an EPUB out as a paginated PDF you can print, annotate or send on — text, headings and lists, typeset in your browser.

About eBook to PDF

Drop in a DRM-free EPUB and get back a paginated PDF: chapters in the book's own reading order, bold chapter openers, wrapped paragraphs, numbered and bulleted lists and page numbers. The text stays real text — selectable, searchable, copyable — because it is drawn as text rather than rendered to an image. Unzipping, parsing and typesetting all happen in this browser tab.

Why anyone converts an e-book to PDF

EPUB is the better reading format and PDF is the better paper format, and sometimes you need paper — literally, or in the sense of something with stable page numbers that can be printed, marked up, cited or handed to a system that only accepts PDF. Reflowable text has no page 47 to refer to. This tool imposes one, and once it exists you can number it, watermark it, split it, protect it or bind it to something else with the other tools here.

How the book is read

An EPUB is a ZIP with a required layout, and the tool follows it exactly. META-INF/container.xml names the package document; the package document lists every file in the book and, crucially, declares the spine — the order in which documents are meant to be read, which is often nothing like the alphabetical order of the file names. Each spine entry is fetched, parsed with the browser's own HTML parser, and walked for text: headings become headings, paragraphs and list items and quotations become their own blocks, script and style content is ignored, and images are counted and dropped. The navigation document is skipped, and so is any spine entry pointing at a file that is not in the archive, any entry that is not a text document at all, and any file whose bytes turn out not to be text. Every one of those exclusions is counted and shown in the summary, so nothing disappears quietly.

Paths are normalised before anything is compared, because writers spell the same file several ways — OEBPS/ch1.xhtml, ./OEBPS/ch1.xhtml, OEBPS/../OEBPS/ch1.xhtml, with spaces percent-escaped or not. Encoding is sniffed too: a document stored as UTF-16 rather than UTF-8 is detected from its byte-order mark and decoded properly, instead of being written off as unreadable and blamed on DRM. A file is only called unreadable when it has real content and not one markup tag in its first few kilobytes, which is what ciphertext looks like whatever you decode it as.

Before any of that, the archive is checked for META-INF/encryption.xml. If it marks a content document as encrypted the book is DRM-protected and the conversion stops with a message that says so, because decoding encrypted bytes as text would produce page after page of convincing-looking rubbish under a green success banner.

The strict XML parser is tried first for the container and the package, but plenty of real EPUB 2 files carry XHTML entities such as   that no DOMParser resolves without a DTD, so the lenient HTML parser is always the fallback. That is why books that other converters reject as malformed usually still come through here.

What the layout does and does not do

  • Word wrap is measured, not guessed. Every line is fitted against the real advance widths of the standard font it will be drawn in, and a word too long for the column is broken by character rather than allowed to run off the page.
  • Structure is honoured, styling is not. Headings come out at six distinct sizes, one per level; ordered lists keep their numbers and unordered ones get a bullet; hard line breaks inside a paragraph, a verse or an address stay as line breaks — but the book's CSS, fonts, colours and drop caps are all discarded.
  • Preformatted blocks keep their shape — one output line per source line, with the leading indentation measured and reproduced. They are set in an italic proportional face rather than a monospace one, so a code listing stays readable but ASCII art that depends on exact column alignment will not survive.
  • Images are dropped and counted, including images referenced from inside an SVG wrapper, so the summary tells you how many went missing.
  • Tables lose their grid. Cells arrive as consecutive short paragraphs in reading order, which is honest but rarely useful.
  • Links lose their target and keep only their text; there is no clickable contents page and no PDF outline.
  • The character set is Windows-1252. No font is embedded, so anything outside Latin-1 and the usual typographic extras becomes a question mark, with the count reported. The PDF's Title and Author properties are exempt — they are written in Unicode and keep their real spelling.

Choosing the settings

A5 at 10 point is the closest thing here to a paperback and reads beautifully on a tablet in portrait; A4 or Letter at 11 point is right for printing or for annotating on a desktop. Leave chapter breaks on for a normal book, and turn them off for an EPUB 3 that has been chopped into dozens of tiny fragments, where a page break per fragment would waste half the document; with them off a chapter simply continues down the page, except that a chapter title is never left stranded as the last line on a sheet. The title page and footer numbering are both optional. A title page is always a page to itself, whatever the chapter-break setting, and numbering counts every sheet including the title page but does not print one on it — so the first page after the title page is the one marked 2.

Limits worth knowing before you start

DRM-protected books cannot be opened by anything running in a browser — this one detects the encryption and refuses rather than pretending — and neither can Kindle's MOBI, AZW3 or KFX formats, so convert those to EPUB first. Illustrated books, cookbooks and technical manuals lose too much here; use Calibre for full fidelity. Once you have the PDF, Add Page Numbers to PDF can renumber it, Add Watermark to PDF can stamp a review copy, Split PDF can pull out a chapter, Compress PDF can shrink it for email and Protect PDF can lock it. To go the other way, PDF to EPUB turns a text-based PDF back into a reflowable book.

Spine order, not file order

container.xml is read to find the package document, the package document supplies the reading order, and chapters come out in exactly the sequence the book declares — not in whatever order the ZIP happens to store them.

Real typesetting, real text

Headings, paragraphs, numbered and bulleted lists, quotations and code blocks are laid out with pdf-lib against genuine font metrics — greedy word wrap, kept line breaks, bold chapter openers, page numbers. The output is selectable, searchable text, not a picture.

Nothing leaves the tab

The EPUB is unzipped, parsed and typeset entirely in your browser. No upload, no queue, no copy on someone else's disk — which matters for a manuscript, a review copy or anything under embargo.

Frequently Asked Questions

Which e-book formats does this accept?

EPUB only — the open standard, both EPUB 2 and EPUB 3, with the .epub extension. It does not read MOBI, AZW, AZW3, KFX or the Kindle formats generally; drop one of those in and you get a message saying so rather than silence. It also cannot read a book protected by DRM, because that protection exists specifically to stop software like this from opening it: the archive is checked for META-INF/encryption.xml and the conversion is refused outright if any chapter is encrypted, and any content file that turns out not to be readable text is dropped and reported rather than typeset as garbage. If you have a DRM-free MOBI, Calibre will convert it to EPUB in a few seconds and the result comes straight in here.

Do the images come across?

No. This is a text-focused conversion: cover art, illustrations, diagrams, figures and decorative rules are all skipped, and the count of skipped images is reported when the conversion finishes so you know what you lost. That count includes images referenced from inside an SVG wrapper, which is how many EPUBs place a full-page picture. Alt text is not substituted either. For a novel that is usually no loss at all; for a photography book, a cookbook or a technical manual with diagrams, it is fatal, and you should use a full-fidelity converter such as Calibre instead.

What happens to the book's styling?

It is discarded. An EPUB carries CSS that can set fonts, colours, drop caps, margins, page-break rules and much more, and none of it is applied. Instead every book is set in the same way: Helvetica throughout, a bold chapter opener, six distinct heading sizes scaled by level, flush-left paragraphs at the size you choose, bulleted lists indented as a block and numbered lists keeping their numbers — including the awkward cases, so a list that starts at 7 or has one item forced to 20 counts on correctly from there. A list nested inside a list indents one step further and keeps its own markers. Hard line breaks are kept, so verse, addresses and song lyrics stay on their own lines, and a preformatted block keeps its line breaks and its leading indentation — though it is set in an italic proportional face, so column-aligned ASCII art will not line up. The result is consistent and readable rather than faithful. Tables are the worst casualty — a table's cells are emitted as separate short paragraphs in reading order, with no grid at all.

Why is the character set limited?

Because no font file is embedded. Text is drawn with Helvetica, one of the fourteen fonts every PDF reader already has, and those are encoded with Windows-1252. Latin script and its accents, curly quotes, en and em dashes, the euro sign and the ellipsis all work. Greek, Cyrillic, Hebrew, Arabic, CJK, Indic scripts, emoji and most symbols do not; each such character becomes a question mark and the total is reported afterwards. That total counts only characters actually drawn on a page — the PDF's own Title and Author properties are written in Unicode and keep their real spelling, so cataloguing still works. Soft hyphens and zero-width characters are removed rather than printed as stray marks. A book in one of those scripts should go through Calibre, which can embed the font it needs.

How are chapters and page breaks decided?

Each document in the book's spine becomes a chapter, and with "Start each chapter on a new page" enabled — the default — each one begins at the top of a fresh page under a bold title. The title is taken from the heading the document opens with; if the document does not begin with a heading, its own title element is used, then its file name, and every heading in the text is left exactly where the author put it. Turning the option off runs the chapters together, which is worth doing for a book chopped into dozens of tiny fragments, as many EPUB 3 files are; a chapter title is never left stranded alone at the foot of a page. A title page, when you ask for one, is always a page of its own.

Some chapters are missing or in a strange order.

Reading order comes from the spine inside the package document, which is the book's own declaration of sequence, so the order should be right. Several things get dropped deliberately, and each one is counted in the summary after the conversion: the navigation document, because a table of contents full of links makes a poor PDF page; any spine entry whose file is not in the archive, or whose idref matches nothing in the manifest; any spine entry that is not a text document at all, such as a stylesheet or a cover image listed in the spine by mistake; and any file whose contents turn out not to be readable text. The contents page is recognised from the EPUB 3 nav property, from an EPUB 2 guide reference, from an inline nav element, or failing all three from a page that is almost nothing but links to three or more other documents of this same book. That floor of three is deliberate: at two, a part-title page carrying only "previous" and "next" was mistaken for a contents page and thrown away, and losing a real page is much worse than keeping a redundant one. Beyond that, a document with no text at all — a cover page that is nothing but an image, for instance — produces an empty chapter, which is skipped rather than printed as a blank page.

Can I get the footnotes, links and the table of contents?

Footnote text usually appears, because in most EPUBs it lives in an ordinary paragraph at the end of a chapter; the link that jumps to it does not survive, so you will see the note but have to find it yourself. Internal and external hyperlinks lose their target and keep only their text. The navigation document is skipped, so there is no clickable contents page and no PDF bookmark outline. If you need a navigable PDF, convert with Calibre, which builds a real outline.

Which page size should I choose?

A4 or Letter for reading on a screen or printing normally. A5 is the interesting one: at roughly half the area it produces a page shaped much more like a paperback, which reads far better on a tablet held in portrait and is the right choice if you intend to print and bind. Body text size ranges from 9 to 14 point. The column is the page width less the margin, so 11 point on A4 gives lines of roughly a hundred characters and 10 point on A5 gives about seventy-five — the A5 measure is the closer of the two to what a printed book uses.

It said the file is not a valid EPUB.

An EPUB is a ZIP with a required internal structure, and the check is genuinely strict: there must be a META-INF/container.xml, it must name a package document, and that package document must exist in the archive. A renamed ZIP of loose HTML files will fail, as will a truncated download. A DRM-protected book fails with its own message naming the encryption, rather than being half-converted. If Calibre opens the book but this does not, re-export it from Calibre as EPUB and the rebuilt file will almost always work.

Is my book uploaded anywhere?

No. The archive is unzipped in this browser tab, its XHTML is parsed by the browser's own parser, the PDF is typeset here in JavaScript and the finished file goes straight to your downloads folder. No network request carries your book or anything derived from it — not its name, not its size, not a word of its text — so an unpublished manuscript or a reviewer copy never leaves your machine. Be clear about what the page itself loads, though: like every page on this site it runs Google Analytics and Google AdSense, and those scripts fetch and report on their own schedule, including while you are converting. What they see is the address of the page you are on and the ordinary things an ad network sees about a browser. They are never handed the file.