"/Ordering(Identity)/Supplement 0>>\n");
objtext(cidfont, "/FontDescriptor ");
objref(cidfont, fontdesc);
- objtext(cidfont, ">>\n");
+ objtext(cidfont, "\n/W[0[");
+ for (i = 0; i < sfnt_nglyphs(fe->font->info->fontfile); i++) {
+ char buf[20];
+ double width;
+ width = find_width(fe->font,
+ sfnt_indextoglyph(fe->font->info->fontfile, i));
+ sprintf(buf, "%g ", 1000.0 * width / FUNITS_PER_PT);
+ objtext(cidfont, buf);
+ }
+ objtext(cidfont, "]]>>\n");
} else {
objtext(font, "/Subtype /Type1\n");
objtext(font, "\n/Encoding <<\n/Type /Encoding\n/Differences [");
unsigned short index;
} glyphmap;
-typedef struct sfnt_Tag sfnt;
struct sfnt_Tag {
void *data;
size_t len;
glyphsbyname_cmp);
}
-static glyph sfnt_indextoglyph(sfnt *sf, unsigned short idx) {
+glyph sfnt_indextoglyph(sfnt *sf, unsigned idx) {
return sf->glyphsbyindex[idx];
}
-static unsigned short sfnt_glyphtoindex(sfnt *sf, glyph g) {
+unsigned sfnt_nglyphs(sfnt *sf) {
+ return sf->nglyphs;
+}
+
+unsigned sfnt_glyphtoindex(sfnt *sf, glyph g) {
cmp_glyphsbyindex = sf->glyphsbyindex;
return *(unsigned short *)bsearch(&g, sf->glyphsbyname, sf->nglyphs,
sizeof(*sf->glyphsbyname),
/*
* Backend functions exported by in_sfnt.c
*/
+typedef struct sfnt_Tag sfnt;
+glyph sfnt_indextoglyph(sfnt *sf, unsigned idx);
+unsigned sfnt_glyphtoindex(sfnt *sf, glyph g);
+unsigned sfnt_nglyphs(sfnt *sf);
void sfnt_writeps(font_info const *fi, FILE *ofp);
void sfnt_cmap(font_encoding *fe, object *);
void sfnt_data(font_info *fi, char **bufp, size_t *lenp);