iBooks and ePub
by Liza Daly
Now that I’ve got the hardware iPad, I was able to do some comprehensive reviews of the iBooks application and its treatment of the ePub format.
As noted earlier by Dave Thomas, when an ePub file is added to iTunes, the file is modified in place to add a file called
iTunesMetadata.plist. This is really obnoxious, but it doesn’t render the files invalid. You can look at the file to see the values that iTunes has derived from the metadata of the epub; initially it won’t be readable — change the file permissions, if that’s something you know how to do.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>artistName</key> <string>Doctorow, Cory</string> <key>book-info</key> <dict> <key>package-file-hash</key> <string>47CC1BA0C40608D65C4F815788FBD10F</string> <key>publisher-unique-id</key> <string>urn:uuid:9bde0872-1ad5-11dd-b5b9-0018f369440e</string> <key>unique-id</key> <integer>336337745614362820</integer> </dict> <key>genre</key> <string>lcsh: Novels</string> <key>itemName</key> <string>Little Brother</string> <key>playlistName</key> <string>Little Brother</string> <key>releaseDate</key> <string>2008</string> <key>sort-artist</key> <string>Doctorow, Cory</string> <key>sort-artist-status</key> <integer>3</integer> </dict> </plist>
As expected, you can add ePubs that won’t actually be readable in iBooks. Most of the cases are totally understandable: missing container files and other severe problems. It also seems that omitting a dc:title is a fatal error. All errors are reported generically as “This book cannot be opened,” so check with the ePub validator to look for the real cause.
- One nice feature of Feedbooks content is the recommendations for related titles, with links directly to those ePub files. In Ibis Reader, accessing an ePub file link will prompt you if you want to add that book to your library, and let you start reading right away. In iBooks, it will open Mobile Safari and then return an error.
- Hyperlinks, either internal to the book or external to the web, otherwise work normally.
- Flash video does not work (of course). HTML5
<video>also does not work, though that’s outside of the spec and therefore unsurprising. I don’t know if it’s possible to embed multimedia into an iBook ePub using some other method. [Edit: subsequently Apple has released updates to support HTML5 video through use of the video tag; note that this will produce an invalid EPUB file at this time.]
- [Edited to remove incorrect statement about justification; does seem to be under CSS control.]
- CSS support seems good, as expected from a WebKit-based reading engine. I haven’t rigorously tested it but I assume it will support CSS outside of the required ePub subset, just as a normal web browser would.
- Embedded fonts don’t appear to work. This is consistent with @font-face not being supported on Mobile Safari. It was also what I expected.
- Extremely long books with limited breaks seem to fail. At least, Ulysses does not work at all: page numbering is random, and reading the book is basically impossible.
Text that cannot be line-broken (like code) runs off the screen. This is true of both portrait and landscape mode:
- Tables sometimes break in the middle of text when paginating. (In Ibis Reader we try to ensure that text doesn’t get cut off even when it occurs inside a table.)
- My favorite test book looks fine:
Overall I’d say iBooks is pretty good for a first-generation ePub reader. The biggest concern is of course that once you purchase books from iTunes, you’re locked in to only reading them in iBooks.
I also hope to see an ePub style guide from Apple to help publishers and designers understand more fully what is and isn’t supported in iBooks.