[gs-bugs] [Bug 691274] Missing or incorrect ToUnicode when using Identity ordering

bugzilla-daemon at ghostscript.com bugzilla-daemon at ghostscript.com
Mon May 3 09:43:44 UTC 2010


--- Comment #6 from Per Sundin <per.sundin at globesoft.com> 2010-05-03 09:43:41 UTC ---
Yes, the "Arial Unicode MS" is represented by a Type 2 CIDFont dictionary. My
original line for creating the composite font is as follows:

> /MyFont /Identity-H /CMap findresource
>  [ /ArialUni /CIDFont findresource ] composefont pop

I'm not sure how to use the "definefont" operator to create a composite font;
would it be ok to use "composefont" instead? I was thinking about something
like this:

> /EmbeddedFont /ArialUni /CIDFont findresource def
> true setglobal
> ... % Make a copy of EmbeddedFont -> EmbeddedFont2
> /FontInfo EmbeddedFont2 /FontInfo get def
> ...
>    % Create ToUnicode dictionary and placed it on the operand stack!
> ...
> FontInfo exch /GlyphNames2Unicode exch put
> false setglobal
> FontInfo exch /GlyphNames2Unicode exch put
> /MyFont /Identity-H /CMap findresource [ EmbeddedFont2 ] composefont pop

I noticed that I need to switch to global VM mode in order to be able to save
the entry in the font dictionary. I assume that the new copy will also need to
be saved in global VM, is that right?

I also noticed that I cannot use the "defineresource" operator to define my new
dictionary  as a CMap resource, because the value of 2 is not regarded as a
valid CMapType value by the PostScript interpreter, it seems. Maybe the
ToUnicode CMap does not need to be associated with the "CMap" name?

It will probably take me a while to figure out how to do the copy. As I
understand, the copy operator only makes a shallow copy. Maybe there is some
other way to do it, that I have not thought about?

Configure bugmail: http://bugs.ghostscript.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

More information about the gs-bugs mailing list