充分利用CR3240打印机硬字库及应注意的问题

Author: 郑实 王力尧 Date: 1994-01-07

        为此充分利用CR3240的硬字库取代目前广为流行的“软汉字”方案无疑是合理利用计算机硬件资源的最佳选择。我们知道,计算机所装配的“软汉字”方案是将汉字操作系统CCDOS拷贝到硬盘上,其中CCDOS汉字库分为显示字库和打印字库,通常打印字库是很庞大的,它占用了大量的硬盘空间,而且输出汉字时需向打印机输送要输出汉字的打印点阵。这样就需频繁读取硬盘,既影响了计算机的寿命又降低了打印机输出汉字的速度。利用CR3240打印机的硬字库就是在硬盘上只装载CCDOS的显示字库,不装载打印字库。充分利用CR3240提供的各种硬字库资源输出要打印的汉字。这样既提高了计算机的使用寿命的,同时又提高了打印输出汉字的速度。所以,在事务管理、财务管理等方面有着广泛的应用。
        那么如何使用CR3240打印机的硬字库呢?CR3240打印机为我们提供了一系列的控制码,包括字符大小和字距命令、纵向位置控制命令、横向位置控制命令、图象控制命令、彩色打印控制命令等。通过调用这些控制码就能使CR3240打印机输出各种各样的汉字的命令字体、字型、比如CR3240设定汉字字体如下:
        CODE  <ESC>  "U"  n
        DEC    27    117  n
        HEX    1B    75   n
        说明:根据n的值选择汉字字体
        CODE控制码助记符
        DEX十进制码表示命令
        HEX十六进制码表示命令
        n   汉字字体
        1  24×24  宋体
        2  24×16  宋体
        3  24×12  宋体
        4  32×32  宋体
        5  32×16  宋体
        6  40×40  楷体
        7  40×40  仿宋体
        8  40×40  黑体
        我们在汉字操作系统上调用相应的控制码就能实现汉字的打印。
        如在汉化FOXBASE中打印24×12点阵的宋体汉字命令为:
        SET PRINT ON
        PRINT CHR(27)+"u3"
        SET PRINT OFF
        在BASIC中打印24×12点阵的宋体汉字命令为:
        10 LPRINT CHR$(27);"u3";"汉字打印"
        但是,笔者发现存在这样一个问题:大多数的ASCII码及汉字都可以被打印,但是空格却不能,也就是说我们从键盘输入的空格符号不能与其它汉字一起处理,从而出现输出的格式(报表)左右不齐,影响了打印机硬字库的使用。笔者认为产生的原因在于CR3240打印机硬字库的控制码是由“汉字”的内码决定的,而在汉字操作系统下,空格符号的内码与“汉字”的内码不一致,为此我采用在空白处不输入空格而输入不显示的汉字符号。如区位码5592、5593等产生空白,这样就能与其它汉字一起被处理,比较圆满地解决了这一问题。
        当然使用其它带硬字库的打印机如LQ1600K等也可参照此法。这样就使带硬字库的打印机大有用武之地了。