[cairo] Cairo PDFs - vector or raster?

C. Thomas Stover cts at thomasstover.com
Sun Apr 26 22:34:54 PDT 2015


On Sat, 25 Apr 2015 15:28:37 +0930, Adrian Johnson wrote:

> Cairo PDF and PS output uses embedded fonts for drawing text. The
> embedded fonts are subsetted to remove unused glyphs while being careful
> to preserve font hinting. The encoding used depends on the output format
> and the characters used.
> 
> For PDF, glyphs that map to characters in the PDF WinAnsiEncoding are
> placed in an 8-bit font with that encoding. Other glyphs are placed in a
> 16-bit font with a custom encoding (the glyphs ids are assigned
> sequentially starting from 1). A ToUnicode map and optionally ActualText
> is embedded to allow extracting the unicode characters for the glyphs.
> Cairo user fonts are embedded using Type 3 fonts.
> 
> Most of the font subsetting code is shared by PS and PDF. The PS
> embedded fonts are the same as PDF with a couple of exceptions:
> 
> - PS does not have a builting WinAnsiEncoding. Instead we create a
> custom 8-bit font with the same encoding.
> 
> - While it is possible to create PS composite fonts with a 16-bit
> encoding, we use only 8-bits fonts. Multiple 8-bit fonts are used to
> contain all glyphs that don't map the WinAnsi encoding.

Thanks so much for your answer! That explains so much. Maybe you can 
comment on these.

1. Is the font rendering logic deterministic / predictable enough, such 
that given a font, one could compute the sizes of rendered text with 
enough confidence that the same result would be yielded from PS / PDF 
viewers, printer drivers, and printer firmware? I would imagine the 
answer is probably something like "usually". Is it just font metrics + 
kerning tables + ligatures substitutions, or are there more variables?

2. Are the font metrics needed for the above rendering computations read 
from font files, hard coded tables, font "metrics" files, or combinations?

3. Some sources talk about a set of core fonts that some versions of PS 
and PDF support are guaranteed to have, yet those particular fonts have 
limited character code point coverages. Are these fonts ever used in 
cairo?

4. How much of this is done by cairo vs pango? Does pango do the size 
computations and cairo do the composite font file creations?




More information about the cairo mailing list