|PK 0x03 0x04|
|International Digital Publishing Forum (IDPF)|
|September 2007; 10 years ago (2007 -09)|
(January 5, 2017; 7 months ago (2017-01-05))
|e-book file format|
|OEBPS Container Format (OCF; Zip)|
|Open eBook, XHTML, CSS, DTBook|
|ISO/IEC TS 30135|
EPUB is an e-book file format with the extension
.epub that can be downloaded and read on devices like smartphones, tablets, computers, or e-readers. It is a technical standard published by the International Digital Publishing Forum (IDPF). The term is short for electronic publication and is sometimes styled ePub. EPUB became an official standard of the IDPF in September 2007, superseding the older Open eBook standard. The Book Industry Study Group endorses EPUB 3 as the format of choice for packaging content and has stated that the global book publishing industry should rally around a single standard. EPUB is the most widely supported vendor-independent XML-based (as opposed to PDF) e-book format; that is, it is supported by the largest number of hardware readers.
|This section needs expansion with: What came before 2.0? How was it founded?.|
A successor to the Open eBook Publication Structure, EPUB 2.0 was approved in October 2007, with a maintenance update (2.0.1) approved in September 2010. The EPUB 3.0 specification became effective in October 2011, superseded by a minor maintenance update (3.0.1) in June 2014. New major features include support for precise layout or specialized formatting (Fixed Layout Documents), such as for comic books, and MathML support. The current version of EPUB is 3.1, effective January 5, 2017. The (text of) format specification underwent reorganization and clean-up; format supports remotely-hosted resources and new font formats (WOFF 2.0 and SFNT) and uses more pure HTML and CSS.
The format and many readers support the following:
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.
Adoption and market share
It is also widely used on many software readers such as iBooks on iOS and Google Books on Android, but notably not by the Amazon Kindle e-readers. iBooks also supports the proprietary iBook format, which is based on the EPUB format but depends upon code from the iBooks app to function.
An EPUB file is a ZIP archive that contains, in effect, a website—including HTML files, images, CSS style sheets, and other assets. It also contains metadata. EPUB 3 is the latest version. By using HTML5, publications can contain video, audio, and interactivity, just like websites in web browsers.
An ePub publication is delivered as a single file. This file is an unencrypted zipped archive containing a set of interrelated resources.
An OCF Abstract Container defines a file system model for the contents of the container. The file system model uses a single common root directory for all contents in the container. All (non-remote) resources for publications are in the directory tree headed by the container's root directory, though EPUB mandates no specific file system structure for this. The file system model includes a mandatory directory named META-INF that is a direct child of the container's root directory. META-INF stores container.xml.
The first file in the archive must be the mimetype file. It must be unencrypted and uncompressed so that non-ZIP utilities can read the mimetype. The mimetype file must be an ASCII file that contains the string "application/epub+zip". This file provides a more reliable way for applications to identify the mimetype of the file than just the .epub extension.
An example file structure:
--ZIP Container-- mimetype META-INF/ container.xml OEBPS/ content.opf chapter1.xhtml ch1-pic.png css/ style.css myfont.otf toc.ncx
There must be a META-INF directory containing container.xml. This file points to the file defining the contents of the book, the OPF file, though additional alternative rootfile elements are allowed. Apart from mimetype and META-INF/container.xml, the other files (OPF, NCX, XHTML, CSS and images files) are traditionally put in a directory named OEBPS. An example container.xml:
<?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>
The ePUB container must contain:
- At least one content document.
- One navigation document.
- One package document listing all publication resources. This file should use the file extension .opf. It contains metadata, a manifest, fallback chains, bindings, and a spine. This is an ordered sequence of ID references defining the default reading order.
The ePUB container may contain:
Content documents include: HTML 5 content, navigation documents, SVG documents, scripted content documents, and fixed layout documents. Contents also include CSS and PLS documents. Navigation documents supersedes the NCX grammar used in EPUB 2.
Books with synchronized audio narration are created in EPUB 3 by using media overlay documents to describe the timing for the pre-recorded audio narration and how it relates to the EPUB Content Document markup. The file format for Media Overlays is defined as a subset of SMIL.
Many editors exist including calibre, Sigil, LaTeX, OPAKI e-Book Maker, and Genebook. An open source tool, called epubcheck, can be used for validating and detecting errors in the structural markup (OCF, OPF, OPS), image, and XHTML files. epubcheck can either be run from the command line, used in applications, used in Java applications as a library, and used online at EPUB Validator. Readers exist for all major hardware platforms with the exception of Amazon Kindle, including Google Play Books (Android and iOS) and Apple iBooks (MacOS and iOS).
- MHTML – a webpage archive format used to combine resources in a single document