EPUB and Adobe Digital Editions


Bill McCoy from Adobe came in to give us a talk yesterday, the main part of which was a demo of Adobe Digital Editions and an overview of the document packaging standard EPUB (aka IDPF OPS/OCF).

Digital Editions is alpha-quality software that I really wish was written in XUL and used the Gecko rendering engine and was extensible using XPI plugins, but isn't (as far as I know). It's going to be cross-platform, with a Linux version planned for later this year, which is good. It's also full of quite cryptic error messages and likes to hang, particularly when XML documents aren't completely valid. Its main use, though, is as a demonstration of EPUB, which is wonderful.

An EPUB file is something I've been looking for for ages: a zip file containing...

  • A mimetype file that describes what kind of package this is (so it's not dependent on the file extension), and a META-INF/container.xml file, that describes what kind of file is used to describe the main content, and where to find that root description file.
  • An OEBPS folder that contains the main content, which is comprised of

    • A .opf file, which provides metadata for the document, a manifest of all the associated files, and an ordered list of the documents to display.
    • A .ncx file, which describes the table of contents.
    • .html and .css files, which are XHTML and CSS files the same as you'd use for the web and comprise the actual documents and associated stylesheets for rendering.

As is Adobe's way with these things, there appears at first glance to be slightly too many, possibly redundant metadata files. If that's necessary to support a wide variety of packaging and document formats though, then that's fine - I'm glad that they've chosen to use open standards so that anyone can easily create and read these packages.

What Digital Editions does very nicely with these files, which web browsers don't - but I suspect could, with a bit of Javascript - is to reflow content into multiple, paged columns depending on the screen width and font size. This makes it much easier to read documents on the screen as there's less scrolling, and unlike PDFs you don't have to scroll up and down to read each page. (Also unlike PDFs, it's easy to extract the content from these XHTML files, so no more hamburgers. Adobe will support DRM in Digital Editions where necessary, so I imagine there may be some way to encrypt the content of documents, but Bill at least seems to have a good stance on not pushing DRM where it's inappropriate).

However Digital Editions ends up, I really hope it lets you apply user stylesheets and user scripts to documents, otherwise we're still better off viewing them in a web browser (which may well get native, or at least plugin support for EPUB before too long).