summaryrefslogtreecommitdiff
path: root/pcl/pglabel.c
diff options
context:
space:
mode:
authorHenry Stiles <henry.stiles@artifex.com>2010-01-28 16:27:32 +0000
committerHenry Stiles <henry.stiles@artifex.com>2010-01-28 16:27:32 +0000
commit6077e74d49f27e01961e4ca86dc47286fad92ced (patch)
treeda8b6a8541cf27a9067420376ef7f58d202b33e7 /pcl/pglabel.c
parentef192326b248aecdba3bdf501f6a98f684d6dfb0 (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.c7
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);