Document viewers in details – Comparing different rendition approaches

Introduction

The technical process of converting a document into a two-dimensional array of pixels to be presented on a display or a printer, is called ‘Rendition’. By the way, this is where the name ARender comes from.

Regardless of the technology used, full web, desktop application, smartphone app, etc. this rendition process must be performed by a piece of software within the toolchain.

The only two differences between the various viewing technologies available are :
– how many transformation layers are required between the original format and the final array of pixels shown on your screen,
– which component performs which part of these transformation operations.

Different approaches

Consider two viewing technologies implemented in various products :

Desktop applications :
– Adobe Acrobat Reader, EMC PDF Annotation Services
Web-based applications :
– Mozilla pdf.js
– IGC Brava Viewer
– Arondor ARender

rendition_modes_mainstory2

1. Desktop applications : Adobe Acrobat Reader, EMC PDF Annotation Services

The whole conversion process is performed at client side, within the same application.
The rendition process generally involves three steps :
– parsing the original document, making sense of the raw input format in a higher level object model,
– layout and compositing,
– final rendering on a pixel map buffer

This approach is common for all desktop applications. EMC PDF Annotation Services is built on top of Adobe Livecycle Suite, and has the same architecture.

Web-based viewers, however, push the work on the server side, and the difference lies in how much work is pushed at server and how much remains on the client.

2. Mozilla Pdf.js (demo here)

The pdf.js viewer, developed by the Mozilla fundation and embedded in recent Firefox browser versions, performs all the parsing and rendition at the client side.
The main strength of such an approach resides in the absence of tasks to perform at the server side.
The downsides is a real performance issue : large documents must be downloaded integrally at client side, and complex documents (plans, figures) are slow to render within the rather limited javascript graphic engine, even with HTML5 browers.

3. Brava Viewer – Full-web with delocalized rendition

Brava Viewer uses another approach, where the document is first processed and pre-transformed at server side, and downloaded to the client in another format – as far as we understood it, the format downloaded to the client is SVG.
The process implies a two-step approach :
At server side :
– parsing of the original document
– converting into a SVG format
At client side :
– parsing of the incoming SVG stream
– compositing and rendering of the SVG content into the browser

The main strength of this approach, compared to the Pdf.js approach, is that it allows server-driven streaming of part of the document : each page can be pushed to the client on-demand, and the client can start showing parts of the document without the whole document being downloaded at first.
The downsides are performance issues : a lot of work has to be performed on the server, but still the client has a lot of work to perform rendering the SVG. Furthermore, the cost of transfering the SVG contents over the network is rather large.

4. Arondor ARender (demo here)

ARender design has performance in mind from the very begining. Because one can not grant any performance and capabilities on the client side, the approach used by ARender is to reduce client-side rendition work to the bare minimum.
As a result, the whole rendition is performed at server-side, and conveyed to the client in image format (PNG or JPEG, depending on original document format).

This is the most highly performing approach because :
– The cost of rendering the document to an image has been greatly optimized over the different versions of ARender,
– All web browsers have also been really efficient in rendering a plain image, even Internet Explorer 6, mostly because all standard web sites used an increasing number of high-quality, large images.

Server side rendition operations have the following advantages :
– Document viewing accuracy, the rendering process is independent of the client-side device used : whatever the font required, language, original file format, operating system, ARender guarantees that all documents will be displayed the same way for all users.
– The rendition cost can be mutualized when several users open the same documents, using ARender’s caching techniques. This specially applies for large number of users opening a smaller number of documents, e.g. for public websites (Terms and Conditions of a reseller) or for internal usage (internal notices, …).
– Streaming the document content is a native feature within ARender, and the streaming capalities are adaptative to the client device needs, because a Smarphone has a much smaller screen than a tablet or a laptop.

In a summary:

– ARender reduces performance issues at client-side, for all the devices a user can use, by delivering fast displayed images,
– ARender reduces performance issues at rendition-side, by optimizing document processing and rendering.

Share This:

Leave a Reply

Your email address will not be published. Required fields are marked *