How to create an eBook for free

Amazon Kindle

Simon Brock reveals the open-source tools you'll need to create an eBook for the Kindle or iPad

Over the past year or so, I’ve been developing for handheld platforms such as the iPhone, iPad, Android and Kindle, so I’ve accumulated a great deal of knowledge about how these gizmos work and how to get the best out of them.

You might consider eBooks to be the duller end of handheld software, since “apps” get all the attention nowadays, while eBooks are, well, just books.

From my viewpoint, however, eBooks present two sets of interesting problems that need solving: how do I get content into the right format (and hence to the reader); and, once I have it in eBook form, what else can I do with it?

This last point is crucial, because many current eBooks are merely pale imitations of their paper versions – for example, a cookery book that I sampled by a well-known celebrity chef was actually devoid of pictures!

Images are the one thing you can add to an eBook for almost zero cost (with the exception of Amazon's 3G distribution charges), compared with a paper book in which they enormously increase the printing and paper costs.

Most eBook readers can present far more than just text, and even ones with limited displays still offer various possibilities for interactivity (iBooks offer much, much more).

What is an eBook?

Regrettably, creating eBooks is currently nowhere near as easy as it should be. However, there are a few open-source tools that can help, and over the next year or so they’ll get far better.

An eBook is a book, formatted so that it can be read on some form of electronic reader device. The most widely accepted format is “ePub”, which is supported directly by most devices other than the Kindle – but even if you’re publishing for Kindle, you’ll normally first create an ePub file, then convert that into Kindle format.

At its simplest, an ePub file is nothing more than a zip file. If you take any ePub file and change its extension to ZIP, your favourite unzipping program will show what’s inside it.

In most cases, you’ll discover a collection of HTML files, some media-like images, audio or video, and then a bunch of other files, which are important since they define the metadata for the book – such as its title and ISBN, its chapter structure and files that are included in it. (This metadata must be present and correct for the book to be accepted by some publishers.)

Since an ePub book is essentially a collection of web pages, if you’re familiar with modern HTML and CSS techniques, you’re already halfway to being able to produce and improve on eBooks. However, don’t be fooled into thinking you can just take your website and convert it straight into an eBook – you need to understand how an eBook works once it’s installed on a reader.

Different eBook readers have different HTML rendering abilities: at one end of the spectrum is the Kindle and its converter program, which have limited support for current web standards, while at the other end, iBooks for iPad and iPhone employ the full WebKit rendering engine used by the Safari and Chrome web browsers. Even so, the iBook’s version of WebKit has its oddities, and to understand them you need to understand how an eBook reader displays content.

The trouble with basing eBooks on HTML is that their pages don’t behave like typical web pages. The latter are rendered in a window that can scroll up and down vertically without limit, while an eBook reader wants to render each page of a book as a static image. You can’t scroll down this – you can only flip to the next page. Typically, each chapter of an eBook is contained in a single HTML file that’s presented as a collection of pages, which, if opened in your web browser, would look like a single web page.

Pages