diff options
author | Henry Stiles <henry.stiles@artifex.com> | 2010-01-28 16:27:32 +0000 |
---|---|---|
committer | Henry Stiles <henry.stiles@artifex.com> | 2010-01-28 16:27:32 +0000 |
commit | 6077e74d49f27e01961e4ca86dc47286fad92ced (patch) | |
tree | da8b6a8541cf27a9067420376ef7f58d202b33e7 /pcl/pglabel.c | |
parent | ef192326b248aecdba3bdf501f6a98f684d6dfb0 (diff) |
Support for unstyled substitution. We have always avoided
implementing this, it is difficult and obscure. Missing glyphs in a
downloaded pcl font can be substituted from the internal character
repertoire. Only glyphs of an "unstyled" nature are candidates for
substitution, these glyphs are so named because they don't carry the
general style of the font and tend to look alike in many fonts. The
glyphs include the Unicode blocks for Arrows, Coptic, Geometric Shapes
and code points for "less than", "greater than", "vertical line" etc.
This functionality is demonstrated in the Quality Logic text HP Color
Laserjet 5 panels 274, 284, 510-512. These tests now print correctly.
git-svn-id: http://svn.ghostscript.com/ghostscript/branches/pcl_font_mods@10662 a1074d23-0009-0410-80fe-cf8c14f379e6
Diffstat (limited to 'pcl/pglabel.c')
-rw-r--r-- | pcl/pglabel.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/pcl/pglabel.c b/pcl/pglabel.c index 7b7d93a74..2ebee40fa 100644 --- a/pcl/pglabel.c +++ b/pcl/pglabel.c @@ -111,7 +111,7 @@ hpgl_map_symbol(uint chr, const hpgl_state_t *pgls) return pl_map_symbol(psm, chr, pfs->font->storage == pcds_internal, - pl_complement_to_vocab(pfs->font->character_complement) == plgv_MSL, + pfs->font->font_type == plgv_MSL, false); } @@ -201,7 +201,8 @@ hpgl_select_stick_font(hpgl_state_t *pgls) id[0] = pfs->params.symbol_set >> 8; id[1] = pfs->params.symbol_set & 0xff; pfs->map = pcl_find_symbol_map(pgls, - id, plgv_Unicode); + id, plgv_Unicode, + font->font_type == plft_16bit); } return 0; } @@ -217,7 +218,7 @@ hpgl_stick_font_supports(const pcl_state_t *pcs, uint symbol_set) id[0] = symbol_set >> 8; id[1] = symbol_set & 0xff; - if ( (map = pcl_find_symbol_map(pcs, id, gv)) == 0 ) + if ( (map = pcl_find_symbol_map(pcs, id, gv, false)) == 0 ) return false; return pcl_check_symbol_support(map->character_requirements, stick_character_complement); |