Infogrid Pacific-The Science of Information


The files

ePub3 Packaging-5 Updated: 2012-07-28

Packaging a novel or linear non-fiction book is no more difficult for ePub3 than it was in ePub2. The difference is there may be now officially be audio and video in the package, and sometime in the future SMIL media overlays may become a larger reality. We are aggressively working on tools that will remove a lot of the pain from SMIL audio production (we hope).

Correctly packaging a large digital content product that contains a lot of different types and kinds of media is very important. The rules are the same as ePub2: 

  1. Every file in the package must be in the manifest.
  2. Every file referenced in the package must be present.
  3. Every content file must be valid to its DTD.

Because our system is a very large and powerful multi-format generation framework, the  packager is presented with a lot of material that may or may not apply to an ePub3 instance actually being generated.

An IGP:FoundationXHTML package is a stand-alone resource that contains all the content and direct or implied processing instructions for many digital content formats. Its XHTML ready to work!

In a system like this it is important to evaluate and optimize the files for the final package.

If you are automating ePub3 packaging, here is a simple check list to ensure all files in a package are in the manifest:

Package and Content Files

  1. One OPF file
  2. One toc.xhtml file
  3. One cover-image file
  4. All XHTML files (content documents) as valid XHTML5.
  5. All CSS files including @import(""); references
  6. All Javascript <link "" /> files.


All image files referenced from all the XHTML files and all the CSS files, and if necessary from the Javascript, must be included. That means: 

  1. <img src="*.gif | jpg | png | svg" />
  2. <poster ="*.gif | jpg | png | svg" />
  3. url("*.gif | jpg | png | svg");
  4. reject any url that is to an external resource outside the package.

Our first pass of the packaging processor neglected the <poster> image inside the HTML5 <video> element because it was shiny and new.

Audio & Video

If you are packaging with A/V fallbacks make sure all the fallback files are included.

  1. <audio src="" />
  2. <audio><source></source></audio>
  3. <video src="" />
  4. <video><source></source></video>


You need to ensure only fonts that are declared in the CSS are in the package. IGP:Digital Publisher segregates print CSS and Online CSS so we don't have a conflict here. However designers do tend to put 20 fonts into the Online CSS and only use three or four of them. So our font packaging rule is: 

  1. Check the @font-face{ } properties in all CSS
  2. Only include those files in the final package and remove any other font-face files.

Also the package has WOFF conversion and font obfuscation options which can be set.

Section JS and CSS

Creating content documents with Javascript and CSS in the header should probably be strongly discouraged. Where possible a packager should move them as referenced links. We don't have the problem because the structure of IGP:FoundationXHTML is sufficiently sophisticated, and the supporting AZARDI Interactive Engine knows exactly how to apply the required Javascript for a page using Load and Build techniques.

Remote Resources

We find the specification a little optional and confusing. We are not packaging for remote resources until we find out if there are devices and readers that will use them. AZARDI Desktop will not play remote resources which are directly linked into the package. It will launch remote resource links in a separate window.


You can see ePub3 files in operation in AZARDI.

The AZARDI desktop reader has very high conformance support for all properties. Because all of these properties are supported natively in AZARDI it does not have to use the properties references for display.

AZARDI supports MathML, SVG, external references and scripted.


comments powered by Disqus