diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2010-10-01 18:05:34 +0930 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2010-10-01 19:15:30 +0930 |
commit | 85c25d79f7e77ae35a68b9444609aef8d5397011 (patch) | |
tree | 6708975c53f06017eac84d60a883b47503b93d04 /src/cairo-scaled-font-subsets.c | |
parent | 7c268bc8382350ab803eecb898d4650999a3a6bb (diff) | |
download | cairo-85c25d79f7e77ae35a68b9444609aef8d5397011.tar.gz |
TrueType subsetting: embed a cmap for latin subsets
To support latin subsets in PDF, TrueType fonts require a cmap to map
unicode to glyph indices for all characters in the winansi encoding.
Diffstat (limited to 'src/cairo-scaled-font-subsets.c')
-rw-r--r-- | src/cairo-scaled-font-subsets.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/cairo-scaled-font-subsets.c b/src/cairo-scaled-font-subsets.c index 24a700a0f..677bd5ae4 100644 --- a/src/cairo-scaled-font-subsets.c +++ b/src/cairo-scaled-font-subsets.c @@ -343,7 +343,8 @@ static unsigned int _winansi_0x80_to_0x9f[] = { 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x0000, 0x017e, 0x0178 }; -static int _unicode_to_winansi (unsigned long unicode) +int +_cairo_unicode_to_winansi (unsigned long unicode) { int i; @@ -618,7 +619,7 @@ _cairo_sub_font_map_glyph (cairo_sub_font_t *sub_font, if (sub_font->parent->use_latin_subset && (! _cairo_font_face_is_user (sub_font->scaled_font->font_face))) { - latin_character = _unicode_to_winansi (font_unicode); + latin_character = _cairo_unicode_to_winansi (font_unicode); if (latin_character > 0 || (latin_character == 0 && sub_font->num_glyphs_in_latin_subset > 0)) { @@ -1184,7 +1185,7 @@ _cairo_scaled_font_subset_create_glyph_names (cairo_scaled_font_subset_t *subset } if (utf16_len == 1) { - int ch = _unicode_to_winansi (utf16[0]); + int ch = _cairo_unicode_to_winansi (utf16[0]); if (ch > 0) strncpy (buf, _cairo_winansi_to_glyphname (ch), sizeof (buf)); else |