Created attachment 40523 [details]
€ signs are drawn correctly on image surfaces, but replaced by a rectangle when drawn on a pdf surface.
Both the cairo text functions and pango are affected.
Steps to reproduce:
1. gcc euro_sign.c `pkg-config --cflags --libs cairo` -o euro_sign
3. compare euro_sign.png and euro_sign.pdf
It works for me.
Can you attach your PDF and PNG files.
Created attachment 40574 [details]
Created attachment 40575 [details]
argh, sorry, I forgot to mention that I use git master of cairo.
thanks to git bisect, I found out that commit af3b550bc186361a0b6a779df0fc57799c3f163d broke it for me.
PDF: Add support for latin subsets
Add support for Type 1 and TrueType latin subsets.
CFF latin subsets are not yet implemented.
Is this a bug or a simply a consequence of those not yet implemented CFF latin subsets?
I can reproduce it now. It needs to be a Truetype font to trigger the bug.
Fixed in master:
Fix http://cgit.freedesktop.org/cairo/commit/?id=47b81b9fea50328bd089db4e5ef8dcb1b181515b works for me with "Bitstream Vera Sans Mono", but not for the opentype version of "Linux Biolinum O" (http://www.linuxlibertine.org/index.php?id=86&L=1).
For "Linux Biolinum O", this issue was introduced by http://cgit.freedesktop.org/cairo/commit/?id=ef60650bd6e0b3a354c85dc2e1be8550be6f7c91
Created attachment 40591 [details]
Linux Biolinum O
with euro_sign.c (replaced "serif" by "Linux Biolinum O"), I get
euro_sign: cairo-cff-subset.c:1549: cairo_cff_font_get_sid_for_winansi_char: Assertion `font->euro_sid >= 391' failed.
(font->euro_sid is 0)
Created attachment 40604 [details]
The assertion failure goes away when I use CAIRO_FONT_WEIGHT_NORMAL instead of CAIRO_FONT_WEIGHT_BOLD. I dont have the bold version of "Linux Biolinum O" installed at the moment. I guess the assertion error is only triggered when bold is emulated (by freetype?).
Yes it was using a synthetic font which embeds a CFF fallback font. Fixed in master.
works for me, too. Thanks a lot!