30 Mar 2011
A while back I wrote how Adobe's InDesign CS3 software could directly ouput ePub e-book files, but how they needed a little work. Now I've had a chance to play with the current version of the software - CS5 - and have had a chance to evaluate its handling of ePub exports.
The good news is that it's much better. The bad news is that you're still going to have to do a little work on the final files if you want your ePub documents to be fully standards compliant.
For this test, I decided to create a test ePub e-book for one of our forthcoming releases. Twisting Tales is a stunning collection of short stories by Clare Le May, which WebVivant Press will be publishing in print, Kindle and iBooks editions.
As it consists of short stories, it's important that the story titles show up in the table of contents. As usual, then, we created the InDesign document using the software's 'book' feature. Each chapter, and sections such as title page, copyright page and so on, is created as a separate document, managed via the book. To create an ePub file, all you need do is select the 'save as ePub' option:
Now, if you're eagle-eyed, you'll have noticed that the menu above is in French. That's because I was using a French friend's Mac to run this test. But even a basic grasp of the language should be enough for you to see that there's an 'Export book in ePUB format...' option.
This brings up a dialogue box with three tabs. I won't go through all the options - I dealt with many of them in the previous series of articles. However, it's worth pointing out a couple of options that have appeared since CS3.
There are now two fields that allow you to input important information. In my previous articles, I detailed how you need to have a unique ID (which appears in two places) and how it's desirable to be able to add metadata to the ePub files identifying the publsher. With the CS3 export, you had to hack the resulting files by hand. With CS5 that's no longer needed. The 'Ajouter une entrée pour l'éditeur' and 'Identificateur unique' fields allow you to enter a publisher (not 'editor' as you might think) and ID information. Here, we've used the ISBN number as the ID.
Running the latest version of epubcheck (v1.1) on the resulting ePub file produced just one error:
ERROR: Twisting Tales.epub/OEBPS/content.opf(2): date value '' is not valid. The date must be in the form YYYY, YYYY-MM or YYYY-MM-DD (e.g., "1993", "1993-05", or "1993-05-01"). See http://www.w3.org/TR/NOTE-datetime.
That's not bad, but it still needs fixing. There's always a chance that the Apple iBookstore - which insists on files passing epubcheck - might reject the file. It's possible that, somewhere, there's a metadata setting in the InDesign file that I've overlooked and which would fix this problem. If you know of one, please let me know.
In spite of this error, the file opens just fine in Adobe Digital Editions (ADE):
Note how the chapter headings have rendered fine in the contents listing on the left. These have been lifted from the filenames of the individual chapter files.
Also, note the image. Twisting Tales is enlivened by some beautiful illustrations by Angela Rozelaar - on the cover and one illustration starting each story. I placed these in the InDesign pages by creating a new paragraph style where the text was centred and there's a little space above and below the par. I then cut and pasted the images into these paragraphs. As you can see, the images exported fine and are suitably centred.
Now to the nitty-gritty of how well InDesign CS5 did, compared to CS3. In the previous series of articles I detailed how I would unzip the .epub document and tweak the content.opf and toc.ncx files, before zipping up the package again. How much of that work still needs to be done?
Content file - content.opf
The 'unique-identifer' attribute in the <package> tag is now properly inserted, thanks to that new field in the dialogue box. Certain schema information, which we've been entering as attributes in the <metadata> tag haven't been inserted by InDesign, but as epubcheck doesn't complain about its absence, maybe that's not a problem.
The publisher and identifier tags are there, again thanks to that extra field in the dialogue box. However, I would prefer it if the identifier tag also contained the attribute opf:scheme="ISBN", given that we're using the ISBN as the ID. This would need to be added by hand, but it's not the end of the world if it's not there.
There's a language tag - in this case it was:
I might have preferred en-GB for the value, but maybe that's splitting hairs.
The creator tag is similarly basic:
<dc:creator>Clare Le May</dc:creator>
A more complete and compliant version would be:
<dc:creator opf:file-as="Le May, Clare" opf:role="aut">Clare Le May</dc:creator>
The <manifest> section has the correct media-type attribute and didn't suffer the duplicate image references that CS3 insisted on inserting.
The one actual problem was the date tag. This was empty, thus: <dc:date/>
Once modified to show the publication date - <dc:date>2011-03</dc:date> - the ePub file validates fine. And given that the content.opf file needs to be opened and hacked in this way, you might as well go ahead and add the other stuff I've mentioned above.
Table of contents file- noc.ncx
Given that the toc.ncx file validates fine with epubcheck, you could always leave it alone. Indeed, CS5 has addressed nearly all the issues I mentioned with regard to the CS3 files. The only thing it does a little strangely is that, with the <navPoint> tags, it uses id="navpoint-1", id="navpoint-2" etc, rather than using the chapter titles for the navPoint ID. You'd probably need to be a purist to worry about this, though.
In summary, InDesign CS5 does a fine job of exporting to ePub - providing you set up some of the metadata information in the InDesign files themselves. If there's a way of fixing that date problem with ID CS5 metadata, then only a purist would feel the need to go in a hack the ePub files.