diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2011-09-15 21:52:26 +0930 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2011-09-15 22:05:22 +0930 |
commit | 47e16d0e565fcb579148285394bafd45b53ecaff (patch) | |
tree | 1178dd94f045002175d1782c567623b245c87e6e /src/cairo-cff-subset.c | |
parent | 1e67fb4490c19085def6f7d77314cc66449288b5 (diff) | |
download | cairo-47e16d0e565fcb579148285394bafd45b53ecaff.tar.gz |
subsetting: Support unicode fontnames
Most fonts use Window platform specific encoded font names since they
allow unicode names.
- Make _cairo_truetype_read_font_name() read the Windows platform
names first. If this fails, fallback to reading he the Mac platform
MacRoman encoded name.
- Use the PDF method of encoding non ASCII PS font names. Poppler will
correctly extract the unicode name.
- Make PDF embed the font family name as AsciiHex if the name is not ASCII.
Diffstat (limited to 'src/cairo-cff-subset.c')
-rw-r--r-- | src/cairo-cff-subset.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/cairo-cff-subset.c b/src/cairo-cff-subset.c index 3ee3ef39a..c011cfcce 100644 --- a/src/cairo-cff-subset.c +++ b/src/cairo-cff-subset.c @@ -2837,13 +2837,13 @@ _cairo_cff_subset_init (cairo_cff_subset_t *cff_subset, } if (font->font_name) { - cff_subset->font_name = strdup (font->font_name); - if (cff_subset->font_name == NULL) { + cff_subset->family_name_utf8 = strdup (font->font_name); + if (cff_subset->family_name_utf8 == NULL) { status = _cairo_error (CAIRO_STATUS_NO_MEMORY); goto fail2; } } else { - cff_subset->font_name = NULL; + cff_subset->family_name_utf8 = NULL; } cff_subset->widths = calloc (sizeof (double), font->scaled_font_subset->num_glyphs); @@ -2877,7 +2877,7 @@ _cairo_cff_subset_init (cairo_cff_subset_t *cff_subset, fail4: free (cff_subset->widths); fail3: - free (cff_subset->font_name); + free (cff_subset->family_name_utf8); fail2: free (cff_subset->ps_name); fail1: @@ -2890,7 +2890,7 @@ void _cairo_cff_subset_fini (cairo_cff_subset_t *subset) { free (subset->ps_name); - free (subset->font_name); + free (subset->family_name_utf8); free (subset->widths); free (subset->data); } @@ -3249,7 +3249,7 @@ _cairo_cff_fallback_init (cairo_cff_subset_t *cff_subset, if (unlikely (status)) goto fail2; - cff_subset->font_name = NULL; + cff_subset->family_name_utf8 = NULL; cff_subset->ps_name = strdup (font->ps_name); if (unlikely (cff_subset->ps_name == NULL)) { status = _cairo_error (CAIRO_STATUS_NO_MEMORY); |