EPUB is an open-standard file format for digital books developed by the International Digital Publishing Forum (IDPF). One of the main benefits of the EPUB format for readers is that it allows a book's text to automatically adjust or "reflow" for different screen sizes, such as those for smartphones, netbooks and eReader devices. EPUB also supports fixed-layout content. Learn more about the EPUB format at the IDPF's EPUBZone.
A number of tools and services exist to help you create an EPUB file. While we don't recommend any one in particular due to the variety in our partners' situations, commonly used software includes Adobe InDesign CS and Apple Pages for Mac OS X. The EPUBZone Solution Showcase lists more options (available in English).
On this page:
Whether to submit EPUB or PDF files
We recommend that you send us both PDF and EPUB files for your books, as we offer our users two display modes: original pages and reflowable text. Providing the PDF file for your book will ensure that readers can view the book in its original layout, while the EPUB file will allow them a more customizable experience. In this case, users will have access to a "reflowable text" option in addition to the "original pages" option. They will be able to resize the text, change the font, and view the book more comfortably on screens of varying sizes. Most major publishers are supplying EPUB files to us.
Supported image types
- Static GIF
- SVG (maximum width or height of 3200)
See the section below on enhanced EPUB support for more information on other multimedia types.
<svg xmlns="http://www.w3.org/2000/svg" height="100%" preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 2000 3200" width="100%" xmlns:xlink="http://www.w3.org/1999/xlink"><image height="2000" width="3200" xlink:href="../Images/example.jpg"></image></svg>
The 3200px limit applies to
height attributes present in the
<svg> tags, and any file referenced by the
EPUB 3 feature support
Individual features of EPUB 3 may not be supported across all the platforms where Google Play Books can be read.
|Embedded audio and video||✔|
|Global language support||✔|
|Navigation document rendering (
|Navigation document rendering (other element types)||✘|
|SVG spine items||✔|
Validating EPUB files
Prior to uploading your EPUB files, we recommend that you try opening them using an eReader program such as Adobe Digital Editions. If you are able to open the files using eReader software, this is a good indicator that the file will be successfully processed by our system.
An additional step you should take is to run the EpubCheck tool, a tool to validate EPUB files, to ensure that there aren't errors in the files you generated. The International Digital Publishing Forum also offers a Web-hosted EPUB validator, which may be simpler to use.
If we encounter issues while processing an EPUB file, these errors will appear in your Partner Center account under the Content tab for the book.
Optimizing your EPUB sample
To provide a better experience for customers when they browse your book in the Google Play store, indicate where the content starts (after any front matter material such as the title page or copyright page). This allows the sample to begin from that point instead of making customers flip through extra pages.
For EPUB 2, inside the
guideelement, include a
<reference>element with a
type="text"attribute. See the EPUB 2.0.1 specification.
This feature isn't available yet for EPUB 3. For future implementation, inside the
landmarks navelement, include a link with an
epub:type="bodymatter"attribute. See the EPUB 3.0.1 specification.
Enhanced EPUB support
Enhanced eBooks take advantage of the digital medium to include multimedia or interactive elements. Google Play Books supports audio and video embedded in EPUB 2 and EPUB 3 files.
Audio or video embedded in an EPUB file should be contained in HTML5 tags, such as in the examples below:
<audio src="audio/example.mp3" />
<video src="video/example.mp4" width="640" height="480" />
<video title="Example Video" width="640" height="480" poster="images/example.jpg">
<source src="video/example.mp4" />
<source src="video/example.webm" />
Only the following attributes will be parsed by Google Play Books:
src: Defines the location of the file for video and audio.
height: Dimensions for video.
poster: Defines a static image for the video. Google supports image formats specified in EPUB specifications (static GIF, JPEG, PNG, and SVG images).
Additional attributes will be ignored.
We support a wide variety of audio and video formats:
- MPEG-4, 3GPP and MOV: typically supporting H.264 or MPEG-4 video codecs, and AAC audio codec
- WebM: VP8 video codec and Vorbis audio codecs
- MPEG: typically supporting MPEG-2 video codec and MP2 audio
- FLV: Adobe-FLV1 video codec, MP3 audio
- AVI: many cameras output this format; typically the video codec is MJPEG and audio is PCM
- MP3, WAV, M4A, MP4, 3GP for audio
- The ability to embed audio is limited to EPUB files and doesn't allow for the submission of standalone audio books.
Fixed-layout EPUB support
When the design of a page is particularly important, you may want to implement a fixed layout, which offers greater control over the presentation of your content. Google Play Books supports fixed layout in EPUB 2 and EPUB 3 files.
We recommend that you review fixed-layout EPUB files before they go live. After you upload a fixed-layout EPUB file, add yourself as a Content Reviewer and verify that the book displays as intended in the Web Reader. If possible, do the same for the tablet version of the Google Play Books Android app.
Google Play Books supports fixed-layout properties for EPUB 3 files.
Alternatively, the below method works for both EPUB 2 and EPUB 3 files.
- Include the file
- Specify layout in XHTML items by adding
<meta name="viewport" content="width=xxx, height=yyy"></meta>
Only the following values in the
META-INF/com.apple.ibooks.display-options.xml file will be parsed:
<?xml version="1.0" encoding="UTF-8"?>
portrait-only value is also supported. Additional attributes, such as the following, will be ignored:
platform name: if different than
open-to-spread: always set to