summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Liddell <chris.liddell@artifex.com>2021-05-11 10:29:44 +0100
committerChris Liddell <chris.liddell@artifex.com>2021-05-11 11:39:16 +0100
commitc9a60501ac4913ad0327771cc3cea1ca0f20dd4c (patch)
tree2baeccb1cef6e8df5b7f6ec17b1bef9b8737bf38
parent9b5442c16ec0d2c32d13b95e1cbd5b2b9dc8a7af (diff)
downloadghostpdl-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.c7
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;