Free PDF to EPUB & EPUB to PDF Converter Online

📚 Ebook Tools Free Forever

Free PDF to EPUB & EPUB to PDF Converter

Convert an EPUB ebook to a readable PDF, or pull the text out of a PDF into a proper reflowable EPUB. Both directions run entirely in your browser, converting real text, not screenshots of pages.

Drop an EPUB file, or click to choose
Processed entirely in your browser, nothing is uploaded
About This Tool

Converts the actual words, not a picture of the page

Both directions of this tool work with real text. EPUB to PDF parses your ebook’s XHTML chapters and lays the words out as genuine, selectable PDF text using jsPDF. PDF to EPUB reads the actual character positions out of your PDF with pdf.js, Mozilla’s PDF engine, and rebuilds them into a proper reflowable ebook. Neither direction works by taking a screenshot of a rendered page, which is how many quick online converters handle this and why their output often can’t be searched, resized, or read aloud by an ebook reader’s built-in accessibility tools.

EPUB to PDF: how a chapter becomes a page

01UnzipAn EPUB is a ZIP archive. JSZip opens it and reads META-INF/container.xml to find the package file.
02Read the spineThe package (.opf) file’s spine lists every chapter file in reading order, that order is preserved exactly.
03Parse each chapterEach chapter’s XHTML is parsed with the browser’s own DOMParser, walking headings and paragraphs as structured blocks rather than raw text.
04Lay out and paginatejsPDF wraps each paragraph to the chosen page width, headings get larger bold text, and a new PDF page starts at the beginning of each chapter.

PDF to EPUB: reconstructing paragraphs from character positions

A PDF has no concept of a “paragraph”, it just knows where individual pieces of text sit on the page. pdf.js’s getTextContent() returns every text run with its exact x/y position. This tool groups runs into lines by matching y-coordinates, then groups lines into paragraphs by looking for a vertical gap noticeably larger than the normal line spacing, the same visual cue a human eye uses to spot where one paragraph ends and the next begins. It’s a heuristic, not a perfect structural reconstruction, so unusual layouts (multi-column pages, tables, captions) can occasionally merge or split oddly.

A quick text check before anything else

The moment a PDF is selected, this tool reads every page and counts how much real, extractable text it actually contains before offering any chapter options. A normal document averages well over a hundred characters per page. If a PDF comes back with almost nothing, that’s usually a sign it’s a scanned book, a stack of photographed pages, or a print-to-PDF of images rather than typed text. This tool flags that case with a warning instead of silently producing a mostly blank EPUB, because no amount of layout logic can pull words out of a PDF that never had selectable text to begin with. Scanned documents need OCR software first, which is a separate step this tool doesn’t attempt.

Four ways to split a PDF into chapters

Once the text check passes, the tool analyzes the document’s structure and offers a live preview of the resulting chapters before you convert anything, so you can see exactly what you’re going to get and adjust it first.

Table of contentsReads the PDF’s own bookmarks (the outline panel you see in Adobe Reader or Preview) and uses those exact entries and page numbers as chapter boundaries. If a PDF has no bookmarks but has a printed contents page with titles and page numbers, the tool detects that pattern in the text as a fallback. This is the most accurate option when it’s available, since it follows the structure the author or publisher already defined, including things like a preface, foreword or appendix that were bookmarked as their own sections.
HeadingsScans every line of every page for text that looks like a heading, either because it’s set in a noticeably larger font than the surrounding body text, or because it matches common section labels like Chapter, Part, Preface, Prologue, Foreword, Introduction, Appendix or Epilogue. Each match starts a new chapter. This works well on documents that were never bookmarked but still have clear visual section breaks.
One chapter per PDF pageEach PDF page becomes its own EPUB chapter with its own entry in the table of contents, useful if the original PDF’s pages were already meaningful sections, or as a fallback when neither bookmarks nor detectable headings exist.
Whole document as one chapterAll extracted text flows into a single reflowable chapter, the simplest and most reliable option for short documents or ones with no real internal structure.

Whichever method is chosen, the resulting chapter list appears as an editable preview: each detected chapter shows its title, its page range in the source PDF, and a merge button to fold it into the neighboring chapter if the automatic detection split something too finely. Chapter titles are plain text fields, so a heading picked up as “CHAPTER ONE” can be retyped as something more readable before the EPUB is generated. Switching methods or pressing reset discards those edits and rebuilds the preview from scratch, so it’s safe to try a different method without starting the whole upload over.

Neither direction preserves embedded images, multi-column layouts, tables or custom fonts. This tool converts text content, the words in your document, not a visual reproduction of the page. For a document that’s mostly photos or a complex laid-out brochure, a text-based converter like this one is the wrong tool; for a novel, report or article, it’s the right one, since that’s exactly the content a reader actually wants reflowable.

Why the output EPUB is a valid, real ebook file

The generated file follows the EPUB 3 specification: a stored (uncompressed) mimetype entry first in the ZIP as the spec requires, a container.xml pointing to the package document, a navigation document and an NCX table of contents for compatibility with older EPUB 2 readers, and one XHTML file per chapter. It opens correctly in Apple Books, Calibre, and any standards-compliant e-reader app.

Where the work happens

Unzipping / rezippingJSZip, running locally in your browser.
PDF text extractionpdf.js, Mozilla’s own PDF rendering engine, running locally as WebAssembly-backed JavaScript.
PDF constructionjsPDF, running locally. No file content is ever transmitted anywhere in either direction.

Library and references

  • pdf.js extracts positioned text runs from the source PDF.
  • jsPDF lays out and generates the PDF output.
  • JSZip reads and writes the EPUB container format.
  • EPUB 3 specification defines the file structure this tool produces.

Where this gets used

Turning a text-heavy PDF report into something readable on an e-reader’s smaller screen with adjustable font size, or converting an EPUB novel to PDF for printing a proof copy.

Common Questions

FAQ: Free PDF to EPUB & EPUB to PDF Converter

No, this tool converts text content only. Embedded images, complex layouts and tables are not carried over in either direction.

Real, selectable text. It’s laid out with actual PDF text-drawing commands, not a screenshot, so it can be searched, copied, and read by screen readers.

Paragraph boundaries are inferred from vertical spacing between lines of text, since PDFs don’t store paragraph structure directly. Unusual layouts like multi-column pages or tables can confuse this heuristic.

Yes, it’s a standards-compliant EPUB 3 file with an EPUB 2 NCX fallback, so it opens correctly in Apple Books, Calibre and other standard e-reader apps.

No, both directions run entirely in your browser using pdf.js, jsPDF and JSZip. Nothing is sent to a server.

Privacy Overview

Cookies let this site remember your preferences and show us which tools people actually use. Full detail sits in our Privacy Policy.