BookJS

I mentioned in an earlier post that the movable type of Gutenberg’s time has become realtime, in a very real sense each book is typeset as we read it. Content is dynamically re-flowed for each device depending on display dimensions and individualized settings. Since ebooks are webpages, browsers have come to play a central role in digital ereaders.

Three books produced by the BookJS in-browser typesetting library. Photo by Kristin Tretheway.

What is interesting here is that the browser can also reflow content into fixed page formats like PDF which means that the browser is on its way to becoming the typesetting engine for print. BookJS demonstrates nicely the role of the browser as print typesetting engine.

BookJS is a Javascript library that you can use to turn a webpage into a PDF formatted for printing as a book. Take a webpage, add the Javascript and you will see the page transformed into a paginated book complete with page breaks, margins, page numbers, table of contents, front matter, headers etc. When you print that page you have a book formatted PDF ready to print. It’s that simple.

Plain HTML file with book content

Same file with BookJS applied

A page with an illustration

Illustration of Table of Contents automatically generated by BookJS

It brings us closer to in-browser print design and a step closer to the demise of Desktop Publishing. Although BookJS is in alpha form it is a clear demonstration that the browser is fast becoming the new environment for print design.

That is an enormous leap. One that not only means print design environments can be developed using browser based technology, which will surely lead to enormous innovation, but it radically changes the process of design. The design of books and paper products enters a networked environment. This will enable more possibilities for collaborative design and bring print production into the workflow of online content production. There will be no need to exit browser-based environments to take content from source to final output. This means there is no need to juggle multiple sources for different stages of production, there can be efficiency gains through integrated workflow, and, most interestingly, content production and design can occur simultaneously…

It is also important to realize that these same technologies, BookJS and others that will follow it, can make the same things possible for ebook production. Flowing text into PDF for paper book, or into ereader screen display dimensions, is the same thing. This enables synchronous in-browser design and production on a single source for multiple output formats.

BookJS is Open Source, developed originally by and for Booktype, but the team is looking to collaborate with whoever would like to push this code base further. It is at the alpha stage and a lot of work still needs to be done so please consider jumping in, improving the code and contributing back into the public repository.

BookJS demo and information can be found here : http://bookjs.net

Note: This is strictly for the geeks to try as it requires the latest version of Chrome; see the demo information.

Originally posted on O'Reilly, Oct 29, 2012
http://toc.oreilly.com/2012/10/bookjs-turns-your-browser-into-a-print-typesetting-engine.html