# EPUB to PDF Converter

> Convert EPUB to PDF in Your Browser · Real Selectable Text · Cover + TOC · 100% Private · No Upload · No Signup

Free EPUB to PDF converter in your browser. Real selectable text, cover page, table of contents with page numbers, page size and font controls. No upload.

URL: https://tools.scoreroute.com/tools/epub-to-pdf/

Markdown: https://tools.scoreroute.com/tools/epub-to-pdf/.md

## Convert an EPUB to a paginated PDF

Drop an `.epub` file below. The converter reads the real container — `META-INF/container.xml`, the OPF package document, and the spine reading order — then lays every chapter out in PDF coordinates with the built-in PDF fonts. The result has selectable, searchable text, not a screenshot of each page.


### PDF layout


#### Diagnostics



## Why this EPUB converter works when AI chatbots fail

An EPUB is a ZIP archive with a prescribed internal layout, not a document a chat model can read. Converting one takes a specific chain of steps: unzip the container, read `META-INF/container.xml` to find the OPF package document, parse the manifest and the spine to recover the real reading order, resolve every relative image path against the chapter's own folder, flatten each XHTML document into headings, paragraphs and lists, measure the text at a fixed line width with actual font metrics, break paragraphs across page boundaries, and write a valid PDF object table with a cross-reference table and a font resource dictionary. Ask an assistant for that and you get a confident description of a plugin that does not exist, or a PDF with one blank page and a lost cover. This tool executes the chain instead of describing it.


## How the conversion works


### Reading the container

The archive is opened with JSZip. The `mimetype` entry is checked and reported if it is missing or wrong, then `META-INF/container.xml` is parsed to resolve the `rootfile` full path, which is the OPF package document. Metadata is read from the Dublin Core elements, and the manifest maps every item id to its media type and href so the spine can be turned back into a file list.


### Recovering reading order and navigation

The spine element is the authoritative reading order — not the alphabetical order of the files inside the archive, which is what several converters get wrong when a book was repackaged. Table of contents entries come from the EPUB 3 navigation document when the manifest declares one, and otherwise from the EPUB 2 `toc.ncx` file. Each entry is matched back to the document it points at, so the contents list and the page numbers line up with what is actually printed.


### Laying text out in PDF space

Nothing is rasterized. Every paragraph is broken into words, each word is measured with the width table of the font that will actually draw it, and lines are filled to the content width. Words that are too long for a full line are split by character. Bold, italic and monospace runs pick their own face, so a bold word inside a paragraph is not measured with the regular font and then drawn too wide. Justification distributes the leftover space across the spaces of a line, and only when the gap stays inside a readable range.


### Writing the file

pdf-lib assembles the page tree, embeds the JPEG and PNG images found in the archive at their natural aspect ratio, and writes the document information dictionary with the title, author, subject and keywords taken from the EPUB package. The document is built twice: the first pass measures where every chapter starts, the second pass inserts the cover and the contents pages with those page numbers filled in. The cover, when the EPUB has one, becomes the first page at full content width.


## Who this is for

Beta readers and self-publishers who need a fixed-layout copy of a manuscript to send to someone. Students who bought a book in EPUB and need a PDF for a reading group or a scholarship application. Researchers and archivists who need a stable, citable copy of a text. Anyone who read a note on a site saying “do not upload your manuscript to a random converter” and wanted a way to do it anyway. Kindle owners who sent a book to their device and now want a copy they can print or read on a laptop.

The honest limits: this is a converter, not an editor. It renders the publication as it was packaged, keeps the author's chapter order, and offers you control over typography rather than over content. CJK and other non-Latin scripts need a font-embedding tool. Books with heavy fixed-layout styling will look plainer than they do in a reading app, because a reading app reflows for the screen while a PDF has to commit to one page size.


## Frequently Asked Questions

**Is my EPUB uploaded to a server?**

No. The whole conversion runs in your browser. JSZip opens the EPUB archive, the OPF package document is parsed in the page, the text is laid out in PDF coordinates, and pdf-lib writes the PDF file on your own machine. Open your browser DevTools, switch to the Network tab, and you will see no request carrying your file. The only network activity is the two JavaScript libraries loading from the CDN and the Cloudflare Web Analytics beacon.

**Will the PDF text be selectable and searchable?**

Yes. Most online converters rasterize each page into a JPEG and wrap that image in a PDF, which produces a file where you cannot select, copy, or search any text. This tool measures every line with the actual PDF font metrics and draws real text objects, so the output is fully selectable, copyable, searchable in Acrobat or Preview, and indexable by any search tool. It also stays small because no full-page images are embedded.

**Why can't an AI chatbot convert my EPUB to PDF?**

An EPUB is a ZIP archive with a prescribed internal layout, not a document an AI can read. To convert it correctly something has to unzip the container, read META-INF/container.xml to find the OPF, walk the spine to get the real reading order, resolve every relative image path, flatten each XHTML document into a sequence of blocks, measure the text at a fixed line width, break paragraphs across page boundaries, and write a valid PDF with an object table, a cross-reference table and a font resource dictionary. A chat model can describe that pipeline and will happily invent a plugin that does not exist, but it cannot execute it or hand you a working PDF. This tool runs the pipeline for real.

**Do I need to install Calibre or Pandoc?**

No. Calibre is the best free desktop ebook manager, and Pandoc with a LaTeX template produces the highest quality print output, but both mean installing software and, for LaTeX, a large toolchain. This converter needs only a browser tab. It is the right tool when you want a PDF in the next thirty seconds, when you are on a machine you cannot install anything on, or when the book is private enough that you do not want it sitting in a web converter's upload folder.

**What page size should I choose for printing?**

Use 6x9 if you are ordering a printed book, because that is the standard trade paperback trim size, and drop the margin to 36 points so the text block matches a real page layout. Use A4 for most of Europe and for loose-leaf printing, and US Letter for North America. A5 is a good reading size for a tablet or a small screen. The margin control is in points, where 72 points equals one inch.

**What happens to a DRM-protected EPUB?**

This tool does not remove DRM and does not attempt to. When it finds an encryption declaration in the archive it says so in the diagnostics panel before you convert, and it will not decrypt the content. A DRM-free EPUB from a store such as Kobo, or one you exported yourself from Calibre after stripping protection, converts normally.

**Why do some characters show up as question marks?**

The PDF standard ships fourteen built-in fonts, and the converter writes with those so the file stays small and needs no embedded font files. Those fonts cover Latin, Western European, Central European and Greek characters. Text in Chinese, Japanese, Korean, Cyrillic, Arabic, Hebrew, Devanagari or Thai cannot be drawn with them, so any such character is replaced with a question mark and listed in the diagnostics panel with its code point and how many times it appeared. Smart quotes, em dashes and non-breaking spaces from the original book are normalised automatically and never turn into question marks. For a CJK or Cyrillic book, use Calibre with an embedded font, or convert it with a tool that embeds a Unicode font.

**Is there a file size limit or a daily limit?**

No hard limit and no daily quota, because nothing is uploaded and no server is doing the work. The practical ceiling is your device's available memory, since the whole archive and the finished document are held in the tab. Most novels under 500,000 words convert in a few seconds. A 300-image illustrated textbook takes longer because each image has to be embedded into the PDF.

**Can I edit the book before converting?**

The converter is not an editor. It reads the publication as it is packaged, which is the point: the spine order and the navigation document are the author's or publisher's decisions, and a converter that silently reorders chapters gives you a different book. If you need to change the content first, do that in Calibre or Sigil, save, and then drop the edited EPUB here. You can also change the typography of the output, including page size, margins, font family, font size, line spacing, justification, page numbers and the running header, without touching the source file.

**Does it work offline?**

After the first visit, yes. The two libraries are served from a public CDN and then cached by your browser, so once they are loaded the converter keeps working with no network connection at all. You can verify this by loading the page, switching the browser to offline mode, and converting again.


## Related Tools

- [Text to EPUB Converter](/tools/text-to-epub/) — the other direction: turn text, Markdown or HTML into a valid EPUB 3.0 file
- [PDF to Word](/tools/pdf-to-word/) — turn a PDF into an editable DOCX
- [PDF Compare](/tools/pdf-compare/) — side-by-side and text diff of two PDFs
- [PDF OCR](/tools/pdf-ocr/) — add a searchable text layer to a scanned PDF
- [HTML to PDF](/tools/html-to-pdf/) — convert a web page or HTML file to PDF
- [PDF Page Numbers](/tools/pdf-page-numbers/) — stamp page numbers onto an existing PDF

## References

- [W3C — EPUB 3.3 Specification](https://www.w3.org/TR/epub-33/)
- [W3C — EPUB 3.3 Package Documents (OPF manifest and spine)](https://www.w3.org/TR/epub-33/#sec-package-documents)
- [IDPF — EPUB 3.0.1 Specification archive](https://idpf.org/epub/30/spec)
- [PDF Association — PDF standards and documentation](https://www.pdf.org/)
- [Wikipedia — EPUB](https://en.wikipedia.org/wiki/EPUB)

