|Internet media type||
|Magic number||PK 0x03 0x04|
|Developed by||International Digital Publishing Forum (IDPF)|
|Initial release||September 2007|
(June 26, 2014)
|Type of format||e-book file format|
|Contained by||OEBPS Container Format (OCF; Zip)|
|Extended from||Open eBook, XHTML, CSS, DTBook|
|Standard||ISO/IEC TS 30135|
EPUB is designed for reflowable content, meaning that an EPUB reader can optimize text for a particular display device. EPUB also supports fixed-layout content. The format is intended as a single format that publishers and conversion houses can use in-house, as well as for distribution and sale. It supersedes the Open eBook standard.
EPUB became an official standard of the IDPF in September 2007, superseding the older Open eBook standard.
In August 2009, the IDPF announced that they would begin work on maintenance tasks of the EPUB standard. Two broad objectives were defined by this working group: "One set of activities governs maintenance of the current EPUB Standards (i.e. OCF, OPF, and OPS), while another set of activities addresses the need to keep the Standards current and up-to-date." The working group expected to be active through 2010, publishing updated standards throughout its lifetime. On April 6, 2010, it was announced that this working group would complete their update in April 2010. The result was to be a minor revision to EPUB 2.0.1 that "...corrects errors and inconsistencies and does not change functionality." On July 2, 2010, drafts of the version 2.0.1 standards appeared on the IDPF website.
On April 6, 2010, it was announced that a working group would form to revise the EPUB specification. In the working group's charter draft, 14 main problems with EPUB were identified, which the group was to address. The group was chartered through May 2011, and was scheduled to submit a final draft on May 15, 2011. An initial Editors Draft for EPUB3 was published on November 12, 2010, and the first public draft was published on February 15, 2011. On May 23, 2011, the IDPF released its proposed specification for final review. On October 10, 2011, the IDPF announced that its membership had approved EPUB 3 as a final Recommended Specification.
In September 2012, ISO/IEC JTC1/SC34 re-established Ad Hoc Group 4 on EPUB of IDPF to prepare the creation of a Joint Working Group (JWG) for EPUB. EPUB 3 will be submitted as a Draft Technical Specification by the Korean National Body via the JTC 1 fast-track procedure and it will be assigned to the SC 34/JWG when approved. In November 2014, EPUB3 was published under the formal name ISO/IEC TS 30135 – Information technology – Digital publishing – EPUB3.
|Part||Number||First public release date (first edition)||Title||Description|
|Part 1||ISO/IEC TS 30135-1||2014-11-05||EPUB3 Overview|
|Part 2||ISO/IEC TS 30135-2||2014-11-05||Publications|
|Part 3||ISO/IEC TS 30135-3||2014-11-05||Content Documents|
|Part 4||ISO/IEC TS 30135-4||2014-11-05||Open Container Format|
|Part 5||ISO/IEC TS 30135-5||2014-11-05||Media Overlay|
|Part 6||ISO/IEC TS 30135-6||2014-11-05||EPUB Canonical Fragment Identifier|
|Part 7||ISO/IEC TS 30135-7||2014-11-05||EPUB3 Fixed-Layout Documents|
The EPUB 3.0 Recommended Specification was approved on 11 October 2011. On June 26, 2014 EPUB 3.0.1 was approved as a minor maintenance update to EPUB 3.0. EPUB 3.0 supersedes the previous release 2.0.1.[a]
EPUB 3 consists of a set of four specifications:
The EPUB 3.0 format is intended to address the following criticisms:
On June 26, 2014, the IDPF published EPUB 3.0.1 as a final Recommended Specification.
EPUB 2.0 was approved in October 2007, with a maintenance update (2.0.1) intended to clarify and correct errata in the specifications being approved in September 2010. EPUB version 2.0.1 consists of three specifications:
.epubfile in XML.
EPUB internally uses XHTML or DTBook (an XML standard provided by the DAISY Consortium) to represent the text and structure of the content document, and a subset of CSS to provide layout and formatting. XML is used to create the document manifest, table of contents, and EPUB metadata. Finally, the files are bundled in a zip file as a packaging format.
An EPUB file uses XHTML 1.1 (or DTBook) to construct the content of a book as of version 2.0.1. This is different from previous versions (OEBPS 1.2 and earlier), which used a subset of XHTML. There are, however, a few restrictions on certain elements. The mimetype for XHTML documents in EPUB is
Styling and layout are performed using a subset of CSS 2.0, referred to as OPS Style Sheets. This specialized syntax requires that reading systems support for only a portion of CSS properties and adds a few custom properties. Custom properties include
oeb-page-head, oeb-page-foot, and
oeb-column-number. Font-embedding can be accomplished using the
@font-face property, as well as including the font file in the OPF's manifest (see below). The mimetype for CSS documents in EPUB is
EPUB also requires that PNG, JPEG, GIF, and SVG images be supported using the mimetypes
image/png, image/jpeg, image/gif, image/svg+xml. Other media types are allowed, but creators must include alternative renditions using supported types. For a table of all required mimetypes, see Section 1.3.7 of the specification.
Unicode is required, and content producers must use either UTF-8 or UTF-16 encoding. This is to support international and multilingual books. However, reading systems are not required to provide the fonts necessary to display every unicode character, though they are required to display at least a placeholder for characters that cannot be displayed fully.
An example skeleton of an XHTML file for EPUB looks like this:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> <title>Pride and Prejudice</title> <link rel="stylesheet" href="css/main.css" type="text/css" /> </head> <body> ... </body> </html>
The OPF specification's purpose is to "...[define] the mechanism by which the various components of an OPS publication are tied together and provides additional structure and semantics to the electronic publication." This is accomplished by two XML files with the extensions
The OPF file, traditionally named
content.opf, houses the EPUB book's metadata, file manifest, and linear reading order. This file has a root element
package and four child elements:
metadata, manifest, spine, and
guide. Furthermore, the
package node must have the
unique-identifier attribute. The .opf file's mimetype is
metadata element contains all the metadata information for a particular EPUB file. Three metadata tags are required (though many more are available):
title, language, and
title contains the title of the book,
language contains the language of the book's contents in RFC 3066 format or its successors, such as the newer RFC 4646 and
identifier contains a unique identifier for the book, such as its ISBN or a URL. The
id attribute should equal the
unique-identifier attribute from the
manifest element lists all the files contained in the package. Each file is represented by an
item element, and has the attributes
id, href, media-type. All XHTML (content documents), stylesheets, images or other media, embedded fonts, and the NCX file should be listed here. Only the
.opf file itself, the
container.xml, and the
mimetype files should not be included. Note that in the example below, an arbitrary
media-type is given to the included font file, even though no mimetype exists for fonts.
spine element lists all the XHTML content documents in their linear reading order. Also, any content document that can be reached through linking or the table of contents must be listed as well. The
toc attribute of
spine must contain the
id of the NCX file listed in the manifest. Each
idref is set to the
id of its respective content document.
guide element is an optional element for the purpose of identifying fundamental structural components of the book. Each
reference element has the attributes
type, title, href. Files referenced in
href must be listed in the manifest, and are allowed to have an element identifier (e.g. #figures in the example).[e]
An example OPF file:
<?xml version="1.0"?> <package version="2.0" xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookId"> <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf"> <dc:title>Pride and Prejudice</dc:title> <dc:language>en</dc:language> <dc:identifier id="BookId" opf:scheme="ISBN">123456789X</dc:identifier> <dc:creator opf:file-as="Austen, Jane" opf:role="aut">Jane Austen</dc:creator> </metadata> <manifest> <item id="chapter1" href="chapter1.xhtml" media-type="application/xhtml+xml"/> <item id="stylesheet" href="style.css" media-type="text/css"/> <item id="ch1-pic" href="ch1-pic.png" media-type="image/png"/> <item id="myfont" href="css/myfont.otf" media-type="application/x-font-opentype"/> <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/> </manifest> <spine toc="ncx"> <itemref idref="chapter1" /> </spine> <guide> <reference type="loi" title="List Of Illustrations" href="appendix.html#figures" /> </guide> </package>
The NCX file (Navigation Control file for XML), traditionally named
toc.ncx, contains the hierarchical table of contents for the EPUB file. The specification for NCX was developed for Digital Talking Book (DTB), is maintained by the DAISY Consortium, and is not a part of the EPUB specification. The NCX file has a mimetype of
Of note here is that the values for the
docTitle, docAuthor, and
meta name="dtb:uid" elements should match their analogs in the OPF file. Also, the
meta name="dtb:depth" element is set equal to the depth of the
navPoint elements can be nested to create a hierarchical table of contents.
navLabel's content is the text that appears in the table of contents generated by reading systems that use the .ncx.
content element points to a content document listed in the manifest and can also include an element identifier (e.g. #section1).
A description of certain exceptions to the NCX specification as used in EPUB is in Section 2.4.1 of the specification. The complete specification for NCX can be found in Section 8 of the Specifications for the Digital Talking Book.
An example .ncx file:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd"> <ncx version="2005-1" xml:lang="en" xmlns="http://www.daisy.org/z3986/2005/ncx/"> <head> <!-- The following four metadata items are required for all NCX documents, including those that conform to the relaxed constraints of OPS 2.0 --> <meta name="dtb:uid" content="123456789X"/> <!-- same as in .opf --> <meta name="dtb:depth" content="1"/> <!-- 1 or higher --> <meta name="dtb:totalPageCount" content="0"/> <!-- must be 0 --> <meta name="dtb:maxPageNumber" content="0"/> <!-- must be 0 --> </head> <docTitle> <text>Pride and Prejudice</text> </docTitle> <docAuthor> <text>Austen, Jane</text> </docAuthor> <navMap> <navPoint class="chapter" id="chapter1" playOrder="1"> <navLabel><text>Chapter 1</text></navLabel> <content src="chapter1.xhtml"/> </navPoint> </navMap> </ncx>
An EPUB file is a group of files that conform to the OPS/OPF standards and are wrapped in a ZIP file. The OCF specifies how to organize these files in the ZIP, and defines two additional files that must be included.
mimetype file must be a text document in ASCII that contains the string
application/epub+zip. It must also be uncompressed, unencrypted, and the first file in the ZIP archive. This file provides a more reliable way for applications to identify the mimetype of the file than just the
Also, there must be a folder named
META-INF, which contains the required file
container.xml. This XML file points to the file defining the contents of the book. This is the OPF file, though additional alternative
rootfile elements are allowed.
META-INF/container.xml, the other files (OPF, NCX, XHTML, CSS and images files) are traditionally put in a directory named
An example file structure:
--ZIP Container-- mimetype META-INF/ container.xml OEBPS/ content.opf chapter1.xhtml ch1-pic.png css/ style.css myfont.otf
An example container.xml, given the above file structure:
<?xml version="1.0" encoding="UTF-8" ?> <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"> <rootfiles> <rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/> </rootfiles> </container>
An EPUB file can optionally contain DRM as an additional layer, but it is not required by the specifications. In addition, the specification does not name any particular DRM system to use, so publishers can choose a DRM scheme to their liking. However, future versions of EPUB (specifically OCF) may specify a format for DRM.
The EPUB specification does not enforce or suggest a particular DRM scheme. This could affect the level of support for various DRM systems on devices and the portability of purchased e-books. Consequently, such DRM incompatibility may segment the EPUB format along the lines of DRM systems, undermining the advantages of a single standard format and confusing the consumer.
An open source tool called epubcheck exists for validating and detecting errors in the structural markup (OPS, OPF, OCF) as well as the XHTML and image files. The tool can be run from the command line, or used in webapps and applications as a library. A large part of the original work on the tool was done at Adobe Systems.
The following software can read and display EPUB files:
|Software||License||Platform||DRM formats supported||Notes|
|Adobe Digital Editions||Proprietary||Microsoft Windows, Apple Mac OS X||Adobe Content Server||Requires online activation for ePub files with DRM.|
|Lektz Readers||Proprietary||Web application, Google Android, Apple Mac OS X, iOS, Windows||Lektz DRM||eBook Readers for PDF, ePUB/2 and ePUB3 providing uniform experience across different platforms - iOS, Android, Windows PC, Mac Desktop and Web.|
|Aldiko||Proprietary||Google Android||Adobe Content Server||Supports ePub for Android devices.|
|Sumatra PDF||GPL||Windows||Adobe Content Server||Supports ePub for devices.|
|STDU Viewer||Freeware||Windows||Supports many documents format including ePub.|
|AZARDI||Proprietary||Windows, Apple Mac OS X, Linux, Google Android, Apple iOS||Package Obfuscation||Supports ePub 3, ePub 2. Fixed Layout, SMIL, DRM, MathML, Online and Mobile versions are available when used with AZARDI:Content Fulfilment Server.|
|Bluefire Reader||Proprietary||Apple iOS, Google Android||Adobe Content Server||Supports ePub for Android and iOS devices.|
|BookGlutton||Proprietary||Web||?||Free online ePub reader focusing on the social aspects of reading. Now closed, but the concept has moved to http://www.readups.com/ per http://www.bookglutton.com/|
|calibre||GPL||Windows, Apple Mac OS X, Linux||None||Primarily for library management, conversion, and transferring to devices, it includes a reader. "About". Calibre.|
|FBReader||GPL||Windows, Linux, Google Android, PDAs||None|
|Google Play Books||Proprietary||Web application, Google Android, Apple iOS||Lektz DRM||Supports downloading purchased books as ePub and/or PDF.|
|iBooks||Proprietary||Apple Mac OS X, iOS||FairPlay||Supports EPUB 2 and EPUB 3. Books not readable directly on computers other than Macs.|
|Kobo||Proprietary||Windows, Apple Mac OS X, Google Android, Apple iOS, Kobo eReader Software,||Adobe Content Server||Supports EPUB 2 and EPUB 3.|
|Lexcycle Stanza||Proprietary||Windows, Apple Mac OS X, iOS||?||Acquired by Amazon in 2009.|
|Lucifox||GPL||Windows, Apple Mac OS X, Linux||None||Ebook reader add-on with annotations for Firefox. Supports open standard ebooks in EPUB 3- and EPUB 2 format and retrieval of books from OPDS book catalogues.|
|Mobipocket||Proprietary||Windows, RIM BlackBerry, Nokia Symbian, Windows Mobile||None||Converts EPUB into .PRC on import.|
|Okular||GPL||Windows, Apple Mac OS X, Linux||?|
|Snapplify||Proprietary||All Web browsers, Apple iOS, Google Android||Adobe Content Server Snapplify SnappSafe DRM||Supports downloading purchased books as ePub and/or PDF. Supports PDF, ePUB2 and ePUB3 standard of ebooks.|
|Kitabu||GPL||Apple Mac OS X||None||Supports ePub3, ePub2, Fixed layout.|
|Publiwide Reader||Proprietary||Google Android||None||Support ePub3, ePub2, fixed layout, reflow. Annotations system.|
|futurepress||GPL||All Web browsers||?||Support ePub2, ePub3, Annotations system http://futurepress.org/|
|ABBYY FineReader||Microsoft Windows||Proprietary||Version 11 exports to EPUB format.|
|Abiword||FreeBSD, Linux, Windows||GPL||Support EPUB 2.0 format export since 2.9.1 release|
|Adobe InDesign||Windows, Apple Mac OS X||Proprietary||Exports to EPUB format. Versions prior to 5.5 create EPUBs that require significant editing to pass ePubCheck or ePubPreFlight. As from InDesign CC 2014, InDesign can export in ePub3 fixed-layout format.|
|Adobe RoboHelp||Windows||Unknown||Online documentation tool that supports export to EPUB format|
|Atlantis Word Processor||Windows, Portable app||Shareware||Converts any document to EPUB; supports multilevel TOCs, font embedding, and batch conversion.|
|Booktype||Web||GPL||Book production platform that outputs to many formats, including ePub. The platform can import content in various formats and supports collaborative editing.|
|calibre||Windows, Apple Mac OS X, FreeBSD, Linux||GPL||Conversion software and e-book organizer. Allows plugins, including for editing EPUB files; there is for instance a plugin to merge several EPUB files into one.|
|epub-tools||Windows, Apple Mac OS X, FreeBSD, Linux||2-clause BSD||A suite of command-line utilities for creating and manipulating epub book files. Written in Haskell|
|eLML||Windows, Apple Mac OS X, FreeBSD, Linux||Unknown||The eLesson Markup Language is a platform-independent XML-based open source framework to create eLearning content. It supports various output formats like SCORM, HTML, PDF and also eBooks based on the ePub format.|
|Feedbooks||Web||Unknown||Free cloud service for downloading public domain works and for self-publishing.|
|Help & Manual||Windows||Proprietary||Single source publishing tool that generates ePUB amongst several other documentation formats.|
|HelpNDoc||Windows||Free for personal use, commercial otherwise.||Help authoring tool that generates EPUB files and other formats.|
|iBooks Author||Apple Mac OS X||Unknown||Desktop publishing and page layout application. Free from Apple. Can export .ibooks format, which is a proprietary format based on EPUB. There are restrictions on the commercial distribution of works created with iBooks in the .ibooks format. These restrictions apply to the .ibooks format only and it can be argued that a file renamed to .epub is not distributed in the .ibooks format.|
|IGP:Digital Publisher||Web||Proprietary||Portal Cloud Service or licence application for digital content publishing to all formats. Generates ePub 2 and ePub 3 fixed and flow layout plus other formats.|
|iStudio Publisher||Apple Mac OS X||Proprietary||Desktop publishing and page layout application.|
|LibreOffice + eLaix plugin||Windows, Apple Mac OS X, Linux||GPL||Text processor with the eLaix plugin can export to ePub3 format.|
|Lulu.com||Web||Unknown||Converts .doc, .docx, or PDF manuscripts to an ePub in order that they may be sold on the Website in question.|
|Madcap Flare||Windows||Proprietary||Single source publishing tool that can export content as ePUB.|
|oXygen XML Editor||Apple Mac OS X, Windows, FreeBSD, Linux||Proprietary||oXygen XML Editor is the first tool that supports creating, transforming, and validating the documents that comprise the EPUB package.|
|Pages||Apple Mac OS X||Unknown||Word processor (part of the iWork '09 suite) that can export to EPUB format (Pages '09 only, and only with the iWork 9.0.4 update).|
|Playwrite||Apple Mac OS X||Proprietary||Native EPUB-based word processor. Native to EPUB 3 with EPUB 2 compatibility.|
|QuarkXPress||Apple Mac OS X, Windows||Proprietary||Desktop publishing tool, page layout application. Exports also to the ePUB format.|
|Serif PagePlus||Windows||Proprietary||Desktop publishing program that can export to the EPUB 2 and EPUB 3 format. Comes with built-in output conversion profiles for targeting specific devices, as well as generic devices. Also includes pre-tested blank eBook templates, or can open and edit existing PDF files and publish as EPUB.|
|Scrivener||Windows, Apple Mac OS X||Proprietary||Program for writers. Includes organization capabilities for fiction writers. Publishes to multiple formats.|
|Sigil||Windows, FreeBSD, Linux, Apple Mac OS X||GPLv3||Can open and edit EPUB books, instead of just converting from other formats to EPUB. Since version 0.7, supports embedding video or audio in EPUB. Development was stopped in February 2014, and launched again in September 2014 with version 0.8.0 released|
|eXeLearning||Windows, Linux, Apple Mac OS X||GPLv2||Can be used to create educational interactive Web content, HTML5, IMS, SCORM and EPUB3 books|
|Viewporter SUN||Windows, Apple Mac OS X||Free||EPUB3 creating and editing ebooks with various Templates and can make android APP |
|genebook||Web||Free||Online platform for creating and editing ebooks genebook.de|
Most dedicated e-book readers support the EPUB format, although the Amazon Kindle line of devices is a notable exception. EPUB reading software is also available for all modern smartphones. Devices that support EPUB include:
typeis in "Section 2.6", ePub OPDF 2.0.1 (specification draft), IDPF.
Resolution 8: Re-establishment of Ad Hoc Group 4 on EPUB. SC 34 re-establishes Ad Hoc Group 4 on EPUB of IDPF* with the following terms of reference: – to prepare the creation of a Joint Working Group (JWG) for EPUB (and possibly other related topics) under JTC 1/SC 34 with ISO TC 46 and IEC TC 100 /TA 10 involved. SC 34 notes that EPUB 3 will be submitted as a Draft Technical Specification by the Korean National Body via the JTC 1 fast-track procedure and it will be assigned to the SC 34/JWG when approved.
available since version 3.0.