> -----Original Message----- > From: [email protected] > [mailto:swftools-common- > [email protected]] On Behalf Of > Goldstein, Seth > Sent: Tuesday, March 17, 2009 9:09 AM > To: [email protected] > Subject: RE: [Swftools-common] missing characters in generated swf > > > > > Very interesting. Learning more about PDFs than I probably ever > wanted > > to. :) > > > > FYI - the PDF does render "correctly" with Ghostscript, so I'm > sifting > > through their source code right now to see how they handle that > glyph. > > But, there is a lot of code here, so if someone wants to lend another > > pair of eyes, I'd love the assistance! > > > > > > So in the Ghostscript source code, we have this function here: > > <code> > bool > gs_font_glyph_is_notdef(gs_font_base *bfont, gs_glyph glyph) > { > gs_const_string gnstr; > > if (glyph == gs_no_glyph) > return false; > if (glyph >= gs_min_cid_glyph) > return (glyph == gs_min_cid_glyph); > return (bfont->procs.glyph_name((gs_font *)bfont, glyph, &gnstr) >= > 0 && > gnstr.size == 7 && !memcmp(gnstr.data, ".notdef", 7)); > } > </code> > > Along with these #defines: > > <code> > #define GS_NO_GLYPH ((gs_glyph)0x7fffffff) > #if arch_sizeof_long > 4 > # define GS_MIN_CID_GLYPH ((gs_glyph)0x80000000L) > #else > /* Avoid compiler warnings about signed/unsigned constants. */ > # define GS_MIN_CID_GLYPH ((gs_glyph)~0x7fffffff) > #endif > #define GS_MIN_GLYPH_INDEX (GS_MIN_CID_GLYPH | (GS_MIN_CID_GLYPH >> 1)) > #define GS_GLYPH_TAG (gs_glyph)(GS_MIN_CID_GLYPH | GS_MIN_GLYPH_INDEX) > #define GS_MAX_GLYPH max_ulong > /* Backward compatibility */ > #define gs_no_glyph GS_NO_GLYPH > #define gs_min_cid_glyph GS_MIN_CID_GLYPH > #define gs_max_glyph GS_MAX_GLYPH > </code> > > Perhaps this is the appropriate test for notdef? > >
Still not sure about this one, but just wanted to let you know that I forwarded the PDF onto the XPDF folks and I did receive a response from them: "That's a known problem related to using glyph ID 0 in TrueType fonts. It will be fixed in the next release of Xpdf. - Derek"
