Web Open Font Format (WOFF) for Web Documents

The Web Open Font Format (short WOFF; here using Aladin font) is several years old. Still it took some time to get to a point, where WOFF is almost painless to use on the linux desktop. WOFF is based on OpenType style fonts and is in some way similar to the more known True Type Font (.ttf). TTF fonts are widely known and used on the Windows platform. Those feature rich kind of fonts are used for high quality font displaying for the system and local office-and design documents. WOFF aims at closing the gap towards making those features available on the web. With these fonts it becomes possible to show nice looking fonts on paper and web presentations in almost the same way. In order to make WOFF a success, several open source projects joined forces, among them Pango and Qt, and contributed to harfbuzz, a OpenType text shaping engine. Firefox and other web engines can handle WOFF inside SVG web graphics and HTML web documents using harfbuzz. Inkscape uses at least since version 0.91.1 harfbuzz too for text inside SVG web graphics. As Inkscape is able to produce PDF’s, designing for both the web and print world at the same time becomes easier on Linux.

Where to find and get WOFF fonts?
Open Font Library and Google host huge font collections . And there are more out on the web.

How to install WOFF?
For using inside inkscape one needs to install the fonts locally. Just copy the fonts to your personal ~/.fonts/ path and run

fc-cache -f -v

After that procedure the fonts are visible inside a newly started Inkscape.

How to deploy SVG and WOFF on the Web?
Thankfully WOFF in SVG documents is similar to HTML documents. However simply uploading a Inkscape SVG to the web as is will not be enough to show WOFF fonts. While viewing the document locally is fine, Firefox and friends need to find those fonts independent of the localy installed fonts. Right now you need to manually edit your Inkscape SVG to point to the online location of your fonts . For that open the SVG file in a text editor and place a CSS font-face reference right after the <svg> element like:

</svg>
<style type=”text/css”>
@font-face {
font-family: “Aladin”;
src: url(“fonts/Aladin-Regular.woff”) format(“woff”);
}
</style>

How to print a Inkscape SVG document containing WOFF?
Just convert to PDF from Inkscape’s file menue. Inkscape takes care for embedding the needed fonts and creates a portable PDF.

In case your prefered software is not yet WOFF ready, try the woff2otf python script for converting to the old TTF format.

Hope this small post gets some of you on the font fun path.

OpenICC Google Summer of Code 2012 results

Google Summer of Code

Participation of the OpenICC group in the Google Summer of Code 2012 program was this year a great success. All projects reached their respective goals. Here a small summary:

Colour Management for Krita Printing
Joseph Simon worked on adaption and integration of his last years implementation for colour managed printing into Krita/Linux. The workflow is based on ICC profile injection into PDF through the means of a OutputIntent.

KWin Colour Correction
Casian Andrei’s KWin changes for ICC style colour correction in the GPU are reviewed upstream and his new code to the KolorManager code base waits just for approval. The concept follows the X Color Management spec. In contrast to the elder CompICC implementation is the KWin result highly modular and thus very flexible.

Simple Toolkit Abstraction
Nitin Chadas SimpleUI project for rendering a subset of XForms was written from
ground up and provides now backends for FLTK, Gtk and Qt. It needs a bit
of polishing to become useable.

Thanks to Google for providing the colour management and graphics community again a great chance to code and learn the open source way.

OpenICC Google Summer of Code 2012 projects

OpenICC obtained three project slots for the Google Summer of Code 2012
stipends. That means three students can work again this year full time over
three summer months on colour management projects. Thanks to Google for
organising and sponsoring the program.

Here are in short the projects:

Joseph Simon will continue to work on PDF colour management for the
KDE/Linux printing stack. To have a real world project he choose to implement
Colour Management for Krita Printing.

Casian Andrej will work on ICC KWin colour correction using the X Color
Management spec. That way KWin gets a clear path toward consistent colour
output on the desktop.

Nitin Chada will work on different toolkit dependent renderers for a
XForms subset inside the Simple Toolkit Abstraction project. That standalone project shall enable modules to present
options inside dialogs or embedded in host applications.

Lets have a successful coding summer and deserve the trust Google putted in
the OpenICC organisation and with that in the participating students.

PDFassociation conference in Basel/Switzerland

PDF Association - The future of PDF

The PDF Technical Conference was organised by the independent PDFassociation and held this week March 27-28, 2012 in Basel, Switzerland in the rooms of Adobe. PDF experts from around the world meet there to talk about hot new stuff and to discuss technical details in a friendly atmosphere. In the following text I will highlight some of the talks.

Andreas Kraushaar from Fogra gave a talk about spectral imaging and why it is a good thing to support that inside PDF spot colours for packaging. Most of the time the number and kind of inks used for packaging is rapidly changing. So colour profiling the ICC way means a waste of too many time and material as it is not flexible enough for that. Embedded spectral data based recipes for rendering spot colours in supporting applications can improve speed and handling considerably.

Two talks elaborated on transparency in PDF. I found it amusing that the concept of a blending colour space is as well in the PDF community still a hot topic. But of course rendering to offscreen bitmaps instead of traditionally one final output buffer is quite different and developers agreed to find implementation sometimes not easy. And yes, there are many PDF viewers around, which blend Cmyk and RgbA together in one go ignoring any blending space requirement.

Florian Süßl from zipcon presented the well known ECI Altona Test Suite 2 now covering PDF/X-4 including transparencies. He elaborated on the work involved on how to create all the tests following the PDF-1.7 spec. He gave some examples where the various PDF renderers failed certain test. This is again a very valuable tool for developers of PDF software. It would be cool if such a test suite becomes part of the specification itself as is usual with other standards to help verifying implementations.

Following the topic of quality testing, David van Driessche explained the GWG test suite. I would find it really cool to embed GWG tests into a dedicated PDF document page for checking reproduction capabilities by layout applications like Scribus. That feature would be helpful for critical viewing and to easily test proofing software.

Bill McCoy from idpf presented a comparison of PDF and the HTML5/ePUB publication format. The later one is based on W3C standards like SVG and TTS with few modifications and has together with these a great potential depending on the involved people and organisations to further develop these technologies. ePUB was created to provide a independent platform for electronic publishers. And as the ePUB format comes out of open source technologies, it can as well be supported in the open source world by e.g. Mozilla and
Calibre logo.png.

The conference was beside sometimes very full rooms a well organised and interesting event.

LGM Vienna 2-5 May 2012

The Libre Graphics Meeting is the annual event for open source creative graphics software. It greatly helps in improving the open source software stack through lots of talks, discussions, round tables, work shops and wonderful face to face meetings. There is always a great mixture of developers, artists, writers, translaters and interested people present, who come together in a very friendly and inclusive atmosphere. We had in the past always a OpenICC round table, when I was at LGM, and discussed various topics and planed around colour management. That should happen this year again with many ideas coming up.

To get people from all over the world to Europe, we need your help:

review!

Sirko has created another pledgie:

ICC wants streamlined workflows

The ICC meeting from 30th January to 1th February was again a great chance to meet with colour management people in person. The meeting was hosted in Munich at Adobe with a great view over the snowy city. I joined the sessions under the OpenICC umbrella to represent the open source community.

Of course many talks went over various specification topics and coordination with other standard bodies and groups of interest in colour exchange. But as ICC is evolving, there are new topics coming up as well.

Notably, ICC is slowly moving from a solely static colour content description of what colours are. There is great interest to cover as well the process of applying colour conversions. This covers necessarily definition of terms and workflows and gets to the questions of why, how and who handles colour. This will help users to do high level decisions as opposed to the current need to understand low level technical ICC terms and figuring out how that applies to actual used implementations.

I presented my work inside OpenICC to add monitor identification and calibration state information inside ICC profiles to streamline profile distribution and installation. The concept found support and the presentation about the meta tag keys came along nicely.

ICC members dive currently into spectral imaging, which is prototyped in SampleICC. I appreciate this direction, as it very likely simplifies the use of spectral readings for colour calculations in applications.

The only discussed hint to reduce the size of n-channel profiles, was work on how to put formulas inside the colour processing pipe. It would be great if that comes to a useful result. Formulas inside ICC profiles where first introduced during the v4 specification but only apply to single channels. For per channel operations are currently some few formulas supported. However the new approach allows to express with more elementary operations and allows free access to all channels.

Obviously many members have a strong background in printing, which is greatly reflected in the spec. But some companies have a strong relation to various imaging industries, like camera manufacturers, who as well create printing or displaying devices. There is potential, that ICC will support their interests, provided they actively contribute. For instance ICC profile embedding inside images is well covered inside the ICC spec. That was a good base for e.g. the W3C to introduce colour management for photography on the net. There is no equivalent to movie or video content. In parts embedding of ICC profiles there does not even exist.

Altogether, the ICC meeting was a great chance to coordinate and intensify the work of ICC and OpenICC.

OpenICC Program FOSDEM 4 + 5 February 2012 in Brussels, Belgium

OpenICC uses 2012 a DevRoom at FOSDEM on Sunday together with Xorg people. The goal is to provide a meeting space for colour management topics.

The program is online on the OpenICC wiki. The talks will present and discuss colour management in Compositors, OpenICC, Scribus, Taxi DB, Oyranos and SVG2.

CSS3 and ICC colour profiles

CSS3 drops color-profile property due to a lack of implementation and calls now for more implementations.

These are bad news, as it clearly reduces the scope of ICC profiles. In order to create content with certain colours a ICC profiles is the best way, as soon as the colours exceed the default sRGB colour space. Moreover HTML5 relies on CSS3 colour definitions.

SVG can be used in HTML5 not as syntax, but as embedded document. This means SVG color-profile is not available to all canvas elements. My guess is some web authors need to circumvent sRGB limitations by the means of embedding documents. Is this a continuation of the old flash with unspecified colour space? Clearly not at that level but in regards to colour it might be. We will see. What will be the blending colour space of native canvas elements with SVGs and PNG embeddings?