InkMap | © InkMap

Printing maps on the web always requires compromises in terms of performance, accuracy and customisation.

On one hand you can achieve the goal by installing a server side printing solution like MapfishPrint, a robust, scalable, cloud-ready application, but quite static with predefined templates and limited format and styling support.

On the other hand you can find a frontend project to perform the print on the client, no server to install, easy to use, “what you see is what you get” printing but those solutions don’t really handle huge prints and are quite limited performance wise.

We think at Camptocamp that the user experience around printing maps is not satisfying enough, we could expect more flexibility, more possibilities, more interactivity, we want that the user can easily customize his print with no compromise regarding the performance. We also want to improve the developer experience with something easy to use and to deploy. It’s time to take advantage of modern web technologies to embed printing services along web map applications.

The project InkMap aims to provide a full native javascript library capable of handling high resolution printings. It takes advantage of Service Worker and Offscreen Canvas technologies (there is a fall back if the browser does not support them). The combination of those 2 services ensure excellent performance. The printing processing is externalized in a separate thread: the service worker that lives along your browser session. This worker uses its own resources, meaning the main thread (your web map application) won’t get slow down by printing tasks. The worker has its own lifecycle, it is shared by all tabs of your browser. We implemented it as a batch manager, handling a printing queue and always giving execution progress or error back to the application. 

InkMap internally uses Openlayers as the rendering engine. It uses Openlayers layer renderer to draw the canvas exactly as it is done in an Openlayers map. You can expect this way to print exactly what you see on your screen, using the same styling potential as the mapping library. The print process takes as an input a specification configuration (layers, resolution, layout etc…), of course the canvas produced by Inkmap will generally be way bigger providing more accuracy and precision to your final drawing.

Handling the print client side brings new potential, you can import the InkMap as a node module and directly use it in your application. Also, canvas drawing possibilities make life easier to organize the print layout in a dynamic fashion (size of the map, position, margins etc..).

InkMap is innovative and hopefully fills the void of ready to use open source map printing solution.

Inkmap is supported by Camptocamp and the french Ministry of Environment (MTE).

You would like to know more?

Please feel free to contact us.

By submitting this form, I accept that the information entered will be used for the purposes described in the privacy policy.
This site is protected by reCAPTCHA and the Google Privacy Policy & Terms of Service apply