+
+ if(type3) {
+ int fontid = 0;
+ if(!gfxfontlist_hasfont(i->fontlist, font)) {
+
+ static int fontnr = 1;
+ char fontname[32];
+ sprintf(fontname, "font%d", fontnr++);
+ int l = strlen(fontname);
+ char fontname2[64];
+ int t;
+ for(t=0;t<l+1;t++) {
+ fontname2[t*2+0] = fontname[t];
+ fontname2[t*2+1] = 0;
+ }
+
+ PDF_begin_font(i->p, fontname2, l*2, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, "");
+ int num = font->num_glyphs<256-32?font->num_glyphs:256-32;
+ for(t=0;t<num;t++) {
+ gfxglyph_t*g = &font->glyphs[t];
+ gfxbbox_t bbox = gfxline_getbbox(g->line);
+ char name[32];
+ sprintf(name, "chr%d", t+32);
+ PDF_encoding_set_char(i->p, fontname, t+32, name, 0);
+ PDF_begin_glyph(i->p, name, g->advance, bbox.xmin, bbox.ymin, bbox.xmax, bbox.ymax);
+ if(mkline(g->line, i->p, 1))
+ PDF_fill(i->p);
+ PDF_end_glyph(i->p);
+ }
+ PDF_end_font(i->p);
+ fontid = PDF_load_font(i->p, fontname2, l*2, fontname, "");
+
+ i->fontlist = gfxfontlist_addfont2(i->fontlist, font, (void*)(ptroff_t)fontid);
+ }
+ }