diff options
author | Chris Liddell <chris.liddell@artifex.com> | 2021-05-11 10:29:44 +0100 |
---|---|---|
committer | Chris Liddell <chris.liddell@artifex.com> | 2021-05-11 11:39:16 +0100 |
commit | c9a60501ac4913ad0327771cc3cea1ca0f20dd4c (patch) | |
tree | 2baeccb1cef6e8df5b7f6ec17b1bef9b8737bf38 | |
parent | 9b5442c16ec0d2c32d13b95e1cbd5b2b9dc8a7af (diff) | |
download | ghostpdl-c9a60501ac4913ad0327771cc3cea1ca0f20dd4c.tar.gz |
Set CIDCount and MaxCID for Type1C CIDFonts
TODO: account for CIDToGIDMaps in CFF CIDFonts derived from OTTO fonts.
-rw-r--r-- | pdf/pdf_font1C.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/pdf/pdf_font1C.c b/pdf/pdf_font1C.c index 6d0c1d0b6..a8f38dbcf 100644 --- a/pdf/pdf_font1C.c +++ b/pdf/pdf_font1C.c @@ -710,7 +710,6 @@ pdfi_read_cff_dict(byte *p, byte *e, pdfi_gs_cff_font_priv *ptpriv, cff_font_off } b0 = 0x100 | *p++; } - if (b0 == 13) { /* UniqueID */ } @@ -1618,6 +1617,7 @@ pdfi_read_cff(pdf_context *ctx, pdfi_gs_cff_font_priv *ptpriv) } if (font->ncharstrings > 0) { + int maxcid = 0; for (i = 0; i < font->ncharstrings; i++) { int fd, g; char gkey[64]; @@ -1642,9 +1642,12 @@ pdfi_read_cff(pdf_context *ctx, pdfi_gs_cff_font_priv *ptpriv) g = (*charset_proc) (font->cffdata + offsets.charset_off + 1, font->cffend, i - 1); } + if (g > maxcid) maxcid = g; gs_snprintf(gkey, sizeof(gkey), "%d", g); code = pdfi_dict_put(ctx, font->CharStrings, gkey, (pdf_obj *) charstr); } + ptpriv->cidata.common.CIDCount = i; + ptpriv->cidata.common.MaxCID = maxcid; } } } @@ -2110,6 +2113,8 @@ pdfi_read_cff_font(pdf_context *ctx, pdf_dict *font_dict, byte *pfbuf, pfont->procs.glyph_outline = pdfi_cff_glyph_outline; pfont->cidata.glyph_data = pdfi_cff_cid_glyph_data; + pfont->cidata.common.CIDCount = cffpriv.pdfcffpriv.CharStrings->entries; + pfont->cidata.common.MaxCID = cffpriv.pdfcffpriv.CharStrings->entries; pfdfont->FAPI = NULL; pfdfont->base = (gs_font *)pfdfont; |