[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Swftools-common] missing characters in generated swf
From: |
Goldstein, Seth |
Subject: |
RE: [Swftools-common] missing characters in generated swf |
Date: |
Tue, 24 Mar 2009 14:07:56 -0500 |
> -----Original Message-----
> From: Goldstein, Seth
> Sent: Wednesday, March 18, 2009 8:26 AM
> To: address@hidden
> Subject: RE: [Swftools-common] missing characters in generated swf
>
>
>
> > -----Original Message-----
> > From:
address@hidden
> > [mailto:swftools-common-
> > address@hidden On Behalf Of
> > Goldstein, Seth
> > Sent: Tuesday, March 17, 2009 9:09 AM
> > To: address@hidden
> > 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"
Still working on this one. Hoping to find a solution. Still would love
to hear any input if anyone has any ideas. The latest research has
revealed this:
With a normal working document, the characters get glyph ids that make
sense. E.g.:
FT_Get_Glyph_Name = T gid = 152
FT_Get_Glyph_Name = h gid = 173
FT_Get_Glyph_Name = i gid = 174
FT_Get_Glyph_Name = s gid = 184
FT_Get_Glyph_Name = n gid = 179
FT_Get_Glyph_Name = o gid = 180
FT_Get_Glyph_Name = t gid = 185
FT_Get_Glyph_Name = a gid = 166
FT_Get_Glyph_Name = k gid = 176
FT_Get_Glyph_Name = e gid = 170
But with my problem document, regardless of the actual characters used,
the 1st character gets glyph id of 0, the 2nd character get a glyph id
of 1... E.g.:
FT_Get_Glyph_Name = .notdef gid = 0
FT_Get_Glyph_Name = .null gid = 1
FT_Get_Glyph_Name = nonmarkingreturn gid = 2
FT_Get_Glyph_Name = space gid = 3
FT_Get_Glyph_Name = exclam gid = 4
FT_Get_Glyph_Name = quotedbl gid = 5
FT_Get_Glyph_Name = numbersign gid = 6
FT_Get_Glyph_Name = dollar gid = 7
But the document still renders correctly mostly. Other than that first
character because it gets a glyph id of 0 and therefore does not render.
So why would the document get glyph ids of 0, 1, 2? And how does it
still render correctly with the wrong glyph ids?
- Re: [Swftools-common] missing characters in generated swf, (continued)
- Re: [Swftools-common] missing characters in generated swf, Matthias Kramm, 2009/03/08
- RE: [Swftools-common] missing characters in generated swf, Goldstein, Seth, 2009/03/12
- Re: [Swftools-common] missing characters in generated swf, Matthias Kramm, 2009/03/13
- RE: [Swftools-common] missing characters in generated swf, Goldstein, Seth, 2009/03/16
- Re: [Swftools-common] missing characters in generated swf, Matthias Kramm, 2009/03/16
- RE: [Swftools-common] missing characters in generated swf, Goldstein, Seth, 2009/03/16
- Re: [Swftools-common] missing characters in generated swf, Matthias Kramm, 2009/03/17
- RE: [Swftools-common] missing characters in generated swf, Goldstein, Seth, 2009/03/17
- RE: [Swftools-common] missing characters in generated swf, Goldstein, Seth, 2009/03/17
- RE: [Swftools-common] missing characters in generated swf, Goldstein, Seth, 2009/03/18
- RE: [Swftools-common] missing characters in generated swf,
Goldstein, Seth <=