兴趣是坚持一件事永不衰竭的动力
分类: 嵌入式
2020-09-08 16:44:57
原文地址:打印机驱动程序设计---PCL指令汉字打印应用 作者:sl_zyy
1、打印机常用的驱动指令集 指令集名称 厂家 用途 ESC PK指令集 EPSON 针式打印机(尤其是滚筒方式打印)领域事实上的工业标准 PCL指令集 HP 中、低档激光打印机、喷墨机印机领域的工业标准 Postscript(ps)指令集 ADOBE 是高档排版、出版领域的应用标准
① 换码字符Ec字符等同于ESC,ASCII值027。
② 常用指令
功能 |
命令 |
选项 (#) |
复位 |
EcE |
|
打印份数 |
Ec&l#X |
1 至 999 |
两面/单面打印 |
Ec&l#S |
0 = 单面(1 面)打印 1 = 双面(2 面)打印,长边装 2 = 双面(2 面)打印,短边装 |
纸张来源 |
Ec&l#H |
7=自动选择 |
纸张尺寸 |
Ec&l#A |
26=A4 |
方向 |
Ec&l#O |
0 = 纵向 1 = 横向 2 = 反向纵向 3 = 反向横向
|
图形打印模式 |
ESC * r # A |
0=左边界开始 1=当前位置开始
|
传输光栅数据 |
ESC*b#W[data] |
#=传送字节数,范围0-32767 |
设置光栅分辨率 |
esc * t # R |
#=150,180,300等 |
3、打印机驱动程序
l 点阵汉字打印原理
无硬件字库条件下,点阵汉字打印技术一般采取图形打印的方式进行打印,以16*16点阵汉字为例,每一个汉字字模相当于16*16矩阵的图形,如图1所示;其中0表示无色,1表示黑色。打印时打印机会根据传送来的图形光栅数据着色。
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
图1 16*16点阵汉字“一”字模二进制示意
汉字“一”的16*16点阵字模的16进制示意如图2所示
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x04,
0x00,0x06,
0x7f,0xfe,
0x7f,0xfe,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
0x00,0x00,
图2 16*16点阵汉字“一”字模十六进制示意
l PCL指令汉字打印示例
汉字“一”打印PCL指令清单如下(字模见打印机驱动程序设计2)
Ec E 设备复位 Ec &l 0 S 单面打印 Ec & l 7 H 自动上纸 Ec & l 26 A 纸张为A4 Ec & l 0 O 方向为纵向 Ec * t 150 R 分辨率为150像素/英寸 Ec * r 0 A 开始图形打印,从左边界开始 Ec * b 2 W 0x00 0x00 传输两个字节数据 0x00 0x00 Ec * b 2 W 0x00 0x00 Ec * b 2 W 0x00 0x00 Ec * b 2 W 0x00 0x00 Ec * b 2 W 0x00 0x00 Ec * b 2 W 0x00 0x00 Ec * b 2 W 0x00 0x04 传输两个字节数据0x00 0x04 Ec * b 2 W 0x00 0x06 传输两个字节数据0x00 0x06 Ec * b 2 W 0x7f 0xfe 传输两个字节数据0x7f 0xfe Ec * b 2 W 0x7f 0xfe 传输两个字节数据0x7f 0xfe Ec * b 2 W 0x00 0x00 Ec * b 2 W 0x00 0x00 Ec * b 2 W 0x00 0x00 Ec * b 2 W 0x00 0x00 Ec * b 2 W 0x00 0x00 Ec * b 2 W 0x00 0x00 Ec r C 结束