|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 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 free and open 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.
It is also widely used on many software readers such as iBooks on iOS and Google Books on Android. iBooks also supports the proprietary iBook format, which is based on the EPUB format but depends upon code from the iBooks app to function.
EPUB 2.0 was approved in October 2007, with a maintenance update (2.0.1) approved in September 2010. The EPUB 3.0 specification was published in November 2014. New major features include support for precise layout or specialized formatting, such as for comic books, and MathML support.
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.
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 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. It must be 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 .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:
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.
Many editors exist including calibre, Sigil, LaTeX, 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; the tool can either be run from the command line or used in applications or webapps as a library; it is also available on EPUB Validator.