fileformer
search⌘KtranslateENexpand_moreupload_fileConvert
Converters8 file families · 44 direct conversions
What changes in a conversionarrow_forward

Convert EPUB Ebook Free

An EPUB is a small website, zipped up with a spine.

Each chapter is a web page, the look comes from a stylesheet, and a manifest says what order to read them in. That's why EPUB text flows to any screen and why you can change the font. Open the folder of a short novel below.

the-crossing.epub/ codemimetypefolderMETA-INF/codecontainer.xmlfolderOEBPS/codecontent.opfcodenav.xhtmlcodechapter-01.xhtmlcodestyle.cssfolderimages/imageharbour.jpg Rename any .epub to .zip and open it to see this yourself.
chapter-01.xhtmlthe words
<body>
 <h1>The Harbour</h1>
 <p>The ferry left at dawn. By the
 time the harbour lights went out
 behind them, …</p>
 <img src="images/harbour.jpg"
 alt="The harbour at dawn"/>
</body>
Each chapter is a standard web page. No page numbers or positions, which is why the text can reflow.
on the readernight mode
Chapter 1 of 3The HarbourThe ferry left at dawn. By the time the harbour lights went out behind them, the island had already become a line of grey on the water.
SerifSansMono
~/mimetype-first

The first 58 bytes that make a ZIP an EPUB.

An EPUB is a ZIP, so on its own it starts like any other archive. The container rules add one trick: a file called mimetype must come first, stored uncompressed, with no extra field. Then the words “application/epub+zip” always sit at byte 38, and software can recognise the book without unzipping it. Break a rule and watch the signature move or vanish.

check_boxmimetype is the first fileRequired. Tools that add files alphabetically put META-INF/ first and break this.check_boxmimetype is stored, not compressedRequired. Many “zip this folder” commands compress everything.check_box_outline_blankAdd an extra fieldForbidden for mimetype. macOS and Info-ZIP add Unix timestamps by default.check_box_outline_blankAdd a newline after the textForbidden: the file must hold exactly 20 bytes of ASCII.
the-crossing.epub · first bytesshowing 58 of 58 bytes of the first entry
50P4BK03·04·0A·00·00·00·00·00·00·60`41A5D]6Fo61aAB·2C,14·00·00·00·14·00·00·00·08·00·00·00·6Dm69i6Dm65e74t79y70p65e61a70p70p6Cl69i63c61a74t69i6Fo6En2F/65e70p75u62b2B+7Az69i70p
signatureheader fieldscompression methodfile nameextra fieldfile contents
check_circlebytes 30 to 57“mimetype” then “application/epub+zip”: detected as EPUB from the first 58 bytesverifiedEPUBCheckContainer passes the OCF rules
~/manifest-vs-spine

The manifest lists what’s in the book. The spine decides the order you read it.

Every file must appear in the manifest, but only the spine sets what comes next when you turn the page. A spine entry marked linear="no" is skipped by page turns and reached only through a link, which is how endnotes and pop-up answers usually work. Reorder the spine and see what a reader does.

spine · use arrows to reorderleft-to-right
arrow_upwardarrow_downwardcover.xhtmlCoverlinear
arrow_upwardarrow_downwardnav.xhtmlContents pagelinear
arrow_upwardarrow_downwardchapter-01.xhtmlChapter 1linear
arrow_upwardarrow_downwardchapter-02.xhtmlChapter 2linear
arrow_upwardarrow_downwardchapter-03.xhtmlChapter 3linear
arrow_upwardarrow_downwardendnotes.xhtmlEndnoteslinear="no"
<spine>
 <itemref idref="cover"/>
 <itemref idref="toc"/>
 <itemref idref="c1"/>
 <itemref idref="c2"/>
 <itemref idref="c3"/>
 <itemref idref="notes" linear="no"/>
</spine>

<!-- manifest lists all 6 files,
 plus style.css and images;
 nav.xhtml carries
 properties="nav" -->
turning pages, start to finish
Coverarrow_forwardContents pagearrow_forwardChapter 1arrow_forwardChapter 2arrow_forwardChapter 3arrow_forward
check_circleChapters are in order. The nav document’s links are independent of the spine, so the Contents menu would show the same list either way.check_circleEndnotes are linear="no": skipped when turning pages, opened from note links or as pop-ups.infoThe contents page is in the reading flow. That’s allowed; many books leave nav.xhtml out of the spine entirely and rely on the reader’s menu.check_circleThe book opens on the cover, since it is the first linear item.
~/schema-access

How a book says who can read it.

EPUB Accessibility 1.1 asks publishers to describe a book’s features in the package metadata, using schema.org terms. Bookshops and reading apps turn these into the accessibility summary you see before buying. Since the European Accessibility Act took effect in June 2025, most new ebooks sold in the EU need this information. Tick what the book offers.

check_boxAlt text on imagescheck_boxTable of contentscheck_boxHeadings in ordercheck_box_outline_blankPrint page numberscheck_box_outline_blankMaths as MathMLcheck_box_outline_blankSynced narrationcheck_boxNo flashing contentcheck_box_outline_blankChecked against WCAG 2.1 AA
<meta property="schema:accessMode">textual</meta>
<meta property="schema:accessMode">visual</meta>
<meta property="schema:accessModeSufficient">textual</meta>
<meta property="schema:accessModeSufficient">textual,visual</meta>
<meta property="schema:accessibilityFeature">alternativeText</meta>
<meta property="schema:accessibilityFeature">tableOfContents</meta>
<meta property="schema:accessibilityFeature">structuralNavigation</meta>
<meta property="schema:accessibilityHazard">none</meta>
<meta property="schema:accessibilitySummary">
 All images are described. Headings follow the chapter structure.
</meta>
what a shop can displayWays of readingReadable as text alone, including with a screen readerNavigationtable of contents, headingsRich contentNo maths declaredHazardsNoneConformanceNo conformance claim
~/every-link-resolved

Open any EPUB and follow every link, image and font reference to its file.

An EPUB works when every reference inside it resolves. That means every link, image, stylesheet and font, plus the manifest and the navigation. This page parses each XHTML page and stylesheet with your browser’s XML parser and resolves every reference against the package. It checks fragment targets against the ids that really exist, compares each declared media type with the file’s first bytes, and works out which manifest properties each page needs. Then it writes a repaired copy and checks it again. Readers differ in how forgiving they are: a broken reference that one app ignores can stop another, or fail a shop’s upload check. Everything happens on your device.

river-keeper.epub · 15.5 KBreading order · spine
#FileTable of contentslinksissues
1text/cover.xhtml415 B-2✓
2text/ch01.xhtmlsvg · 1.0 KB#1 1. The flood5✓
3text/ch02.xhtmlmathml · 609 B#2 2. Counting the bridges2✓
4text/notes.xhtmllinear="no" · 576 B#3 Notes3✓
4 pages in reading order, 1 of them outside the linear flow. The contents (EPUB 3 nav) has 3 entries.
files12references19broken0pages5images2fonts1
What the package says
EPUB version3.0
TitleThe River Keeper
Languageen
Identifierurn:uuid:5a1c6f2e-8b3d-4c9e-a7f1-2d4b6e8a0c13
Modified2026-10-02T09:30:00Z
mimetypefirst · stored · exact
Package documentOEBPS/content.opf
Manifest9 items · 0 missing · 0 undeclared files
References19 · 0 with problems
Not well-formed0
Cover imageimages/cover.jpg
check_circleEvery one of the 19 references resolves, every file is declared with its real media type, every page is well-formed, and the contents follow the spine.
info1 page in the reading order has no table-of-contents entry (cover.xhtml). That is normal for covers and title pages, but readers cannot jump to it from the contents.
infoNo EPUB 2 NCX table of contents. EPUB 3 does not need one, but some older e-readers show no contents without it.
Every reference
In fileKindAs writtenResolves toStatus
No problems: every reference resolves.
19 references in 6 files: 19 ok. Click a row to inspect the file it is in.
Files, manifest and media types12 files · 9 manifest items
PathDeclared typeBytes saysizeused
META-INF/container.xmlcontainer-application/xml239 B-
content.opfcontainer-application/oebps-package+xml1.3 KB-
fonts/Literata.woff2font/woff2font/woff296 B1
images/cover.jpgcover-imageimage/jpegimage/jpeg6.7 KB1
images/map.pngimage/pngimage/png6.7 KB1
nav.xhtmlnavapplication/xhtml+xmlapplication/xhtml+xml714 B0
styles/book.csstext/csstext/css336 B5
text/ch01.xhtmlsvgapplication/xhtml+xmlapplication/xhtml+xml1.0 KB4
text/ch02.xhtmlmathmlapplication/xhtml+xmlapplication/xhtml+xml609 B4
text/cover.xhtmlapplication/xhtml+xmlapplication/xhtml+xml415 B2
text/notes.xhtmlapplication/xhtml+xmlapplication/xhtml+xml576 B4
text/ch01.xhtmlxhtml
Size1.0 KB
Declared asapplication/xhtml+xml · svg
Bytes sayapplication/xhtml+xml
In the spineposition 2
In the contents“1. The flood”
XMLwell-formed
ids2
Needs propertiessvg
References out5 · 0 with problems
Referenced bynav.xhtml, notes.xhtml
Repaired copyWrites a new EPUB that fixes what can be fixed safely and copies everything else byte for byte. It cannot repair XML that is not well-formed or a link to a file that does not exist; those are listed for you to fix. Then the new file goes through every check again.
check_circleNothing to repairThe package is already consistent.
Errors0 → 0
Warnings0 → 0
References with problems0 → 0
Undeclared files0 → 0
Wrong media types0 → 0
mimetypefirst, stored, exact
Left for younothing
Size15.5 KB → 15.5 KB
downloadDownload repaired EPUB
~/epub-2-3-fixed

Three kinds of EPUB, and what each can do.

Most readers open all three. The differences show up in accessibility, audio and page design.

EPUB 22007The original: HTML and CSS of its time. Still what many older ebooks use.
check_circleOpens on every readercancelLimited stylingcancelNo audio or video
EPUB 32011: todayModern HTML5 and CSS, with built-in accessibility features and optional audio narration.
check_circleScreen-reader friendlycheck_circleRead-aloud synccheck_circleOpens on current readers
Fixed-layout EPUB 3for picture booksEach page keeps an exact design, like a PDF, while staying EPUB. Used for children’s books and cookbooks.
check_circleExact page designcancelText size can’t changechange_circleBest on tablets
~/which-epub-is-it

Three files share the extension, and readers treat them differently.

Picking the right EPUB for a device means knowing which of three things you actually have. EPUB 2 carries its table of contents in an NCX file. EPUB 3 replaced that with an HTML navigation document and added support for audio, video and scripting. Fixed-layout EPUB 3 abandons reflow entirely and pins every element to a position, which is how comics, children's books and anything heavily illustrated are published.

The practical difference shows up as a missing contents list. An EPUB 3 file is not required to include the older NCX, and the page above reports when one is absent, but some older e-readers will show no table of contents at all without it. If a book opens on a newer device and looks unnavigable on an older one, that is usually the reason rather than a damaged file.

Fixed layout is the one to identify before converting. Because positions are pinned, the text cannot reflow to a smaller screen, so a fixed-layout book designed for a tablet is close to unreadable on a six-inch reader: you get the whole page shrunk rather than larger type. Converting it to a reflowable format means discarding the layout the publisher built, and converting it to PDF keeps the layout but keeps the screen-size problem with it.

The spine is worth a look for a different reason. It sets reading order, and entries can sit outside the linear flow, which is how a publisher marks material that should be reachable but not read in sequence, such as a copyright page or an appendix. A reader that honours that flag will skip those sections when you page forward; one that ignores it will drop you into them.

For device targeting, the rule of thumb is that reflowable EPUB is the safe default and anything else is a compromise. Send a reflowable EPUB 3 with an NCX included and almost every reader made in the last decade will open it with working navigation. Keep fixed layout for the books that genuinely need it, and read those on the screen size they were laid out for.

~/drm-and-store-formats

A bought book is often not the file you think you have.

The EPUB a shop sells you and the EPUB this page can open are frequently different things. Stores wrap purchases in digital rights management, and a wrapped file is not readable by anything except the app licensed to open it. This converter detects those books and refuses them rather than producing a broken result, which is the honest outcome: the file is not damaged, it is locked, and no converter can lawfully unlock it.

Amazon's current format is the clearest case. KFX is proprietary and usually DRM-protected, so it cannot be read here at all. That is a deliberate boundary rather than a missing feature. If a book arrived from the Kindle store it is likely KFX or a protected AZW variant, and the route to reading it elsewhere runs through the retailer's own permissions, not through a file conversion.

Kobo adds a gentler wrinkle. Kobo devices read ordinary EPUB natively, so nothing needs converting for them, but the shop also sells a kepub variant. The difference is smaller than the separate extension suggests: kepub adds reading statistics and faster page turns and is otherwise the same book. If you have a choice, plain EPUB is the more portable file and loses nothing you would notice.

Books that are genuinely yours behave differently. An EPUB from a publisher's direct sale, a library of public-domain titles, or your own export has no wrapper, opens here, and converts cleanly. That is the file worth keeping as your master copy, because it will still open in a decade regardless of which retailer still exists, and every other format you might need can be generated from it.

The practical habit is to check what you have before planning around it. Open the book here and the package, spine and metadata are listed; a protected file says so immediately instead of failing halfway through a conversion. EPUB 3 itself is a W3C Recommendation and deliberately open, so where a book is unreadable the obstacle is almost always the shop's wrapper rather than the format.

~/spec-sheet

EPUB, for reference.

Identifiers and rules from the W3C EPUB 3.3 Recommendation, which now defines the format, and the steps from Open eBook to today.

Full nameEPUB (electronic publication)Defined by the W3C since the IDPF merged into it in 2017
Extension.epubFixed-layout and reflowable books share it
MIME typeapplication/epub+zipRegistered with IANA; also the exact text of the mimetype file
Apple UTIorg.idpf.epub-containerUniform Type Identifier on macOS and iOS
Magic bytes50 4B 03 04 … at 30: “mimetype”Then “application/epub+zip” at offset 38 to 57
Current versionEPUB 3.3W3C Recommendation, May 2023; EPUB 3.4 in progress
ISO standardISO/IEC 23736:2020Covers EPUB 3.0.1, in six parts
ContainerOCF · ZIPStored or Deflate only; META-INF/container.xml points to the package
Package document.opf · application/oebps-package+xmlMetadata, manifest and spine
Required metadataidentifier · title · language · modifieddc:identifier, dc:title, dc:language and dcterms:modified
Content documentsXHTML · SVGMust be XML-serialised HTML, not ordinary HTML
Core media typesJPEG PNG GIF WebP SVG · MP3 AAC Opus · WOFF2 OTFReaders must support these; WebP and Opus were added in 3.3
AccessibilityEPUB Accessibility 1.1Built on WCAG 2; the basis for EU Accessibility Act compliance
1999Open eBook 1.0The Open eBook Forum publishes OEB, the XML ancestor of EPUB.
2007EPUB 2.0The IDPF, renamed from the forum, releases EPUB with OPS, OPF and OCF.
2010EPUB 2.0.1Clarifications; the version most older ebooks still use.
2011EPUB 3.0Moves to HTML5 and CSS3, adds audio and video, scripting, MathML and media overlays.
2014EPUB 3.0.1Adds fixed layout to the core spec; later becomes ISO/IEC 23736.
2017IDPF joins W3CPublishing work continues in the W3C; EPUB Accessibility 1.0 published.
2019EPUB 3.2Aligns with current web standards and drops the separate content profile.
2022Accessibility 1.1Updated conformance and discovery metadata, tied to WCAG 2.x.
2023EPUB 3.3Becomes a W3C Recommendation in May, along with Reading Systems 3.3.