vb点虐 打印照片 vba打印图片

用esc指令esc * m n1 n2 [d]k 打印一张图片,[dk]这个数据该怎么获取?vb点虐 的

这个应该是打印机命令格式,不同的打印机命令格式不尽相同,你可以找这一款打印机的命令说明看一看,一般光盘里有带的,或者到官网上下也可以。下面一些你可以先看看:

专注于为中小企业提供网站设计、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业南宁免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

英文模式下的命令

代码 功能

CR 回车

ESC ! 设置打印方式

ESC % 选择或取消用户自定义字符集

ESC 定义用户自定义字符集

ESC * 设置位映射方式

ESC @ 初始化打印机

ESC ~ LED ON/OFF

ESC 返回行首

ESC 2 选择行间距为1/6英寸

ESC 3 设置行进为最小间距

ESC BEL 蜂鸣器ON/OFF

ESC C 设置单页长度

ESC c0 选择打印页

ESC c1 选择行间距

ESC c3 选择纸结束信号输出

ESC c4 选择打印纸及检测器(终止打印)

ESC c5 禁止/使能面板开关

ESC c6 禁止/使能ON-LINE开关

ESC d 打印及N行进纸

ESC D 设置TAB位置

ESC e 打印病退回N行

ESC f 设单页等待时间

ESC F 选择或取消单页退纸区

ESC i 全切割

ESC J 以最小间距进行打印和进纸

ESC K 以最小间距进行打印和退纸

ESC l 选择或取消倒过来的字符

ESC m 局部切割

ESC o 印章

ESC p 产生指定脉冲

ESC q 释放纸

ESC r 选择打印颜色

ESC R 选择国际字符子集

ESC SP 设置右边界

ESC t 选择字符码表

ESC U 选择或取消单向打印

ESC V 发送打印机状态

ESC z 设置或取消两页并行打印

FF 打印送出单页

HT 水平TAB

LF 换行

RS 流水TAB

中文模式下的命令

代码 功能

FS – n 设置中文字符下划线模式开关

FS ! n 选择中文字体

FS 选择中文字符模式

FS . 取消中文模式

EPSON打印控制指令集

打印命令  功能

格式:  ASCII: 以标准ASCII字符序列表示

十进制: 以十进制数字序列表示

 十六进制: 以十六进制数字序列表示

说明:该命令功能和使用说明。

HT   水平制表

格式:  ASCII: HT

十进制: 09

 十六进制: 09

说明:

打印位置进行到下一水平制表位置。

如果当前打印位置超过了最后一个水平制表位置,则HT命令不被执行。

水平制表位置由 ESC D命令设置。

LF  打印并换行

格式:  ASCII: LF

十进制: 10

 十六进制: 0A

说明:

打印存放在行编辑缓存中的一行数据并按当前设定的行距向前走纸一行。ESC2,ESC3指令可设定行距的长短。

如果行编辑缓存空,则只按当前设定的行距向前走纸一行。

CR  打印回车

格式:  ASCII: CR

十进制: 13

 十六进制: 0D

说明:

当打印在行编辑缓存中的一行数据之后,不进行走纸操作。

DLE EOT n  实时状态传送

格式:  ASCII: DLE EOT n

十进制: 16 04 n

 十六进制: 10 04

说明:

1 ≤ n ≤ 4

传送以实时的方式,n代表被选择的打印机状态,基于下列参数:

n = 1: 打印机状态

n = 2: 脱机状态

n = 3: 错误状态

n = 4: 纸检测器状态

返回的字节每位设置如下:

n = 1: 打印机状态

n = 2: 脱机状态

n = 3: 错误状态

n = 4: 纸检测器状态

DLE ENQ n  对打印机的实时请求

格式:  ASCII: DLE ENQ n

十进制: 16 05 n

 十六进制: 10 5

说明:

n = 0, n = 2

打印机对主机请求作出反应,n值定义如下:

n = 0: 恢复到联机状态

n = 2: 清除接收和打印缓冲区,并恢复错误.

ESC SP n  设置字符右间距

格式:  ASCII: ESC  SP n

十进制: 2732 n

 十六进制: 1B20 n

说明:

以半点为设定单位(1/144英寸),设置字符右边间距为n个半点距。

默认值n=0。

ESC ! n    设置字符打印方式

格式:  ASCII: ESC  ! n

十进制: 2733 n

 十六进制: 1B21 n

说明:

0≤n≤255

ESC ! n是综合性的字符打印方式设置命令,用于选择打印字符的大小和下划线。

打印参数n的每位定义为:

位 功能 值

0 1

0 字模选择 7×9 5×7

1 无定义

2 无定义

3 着重模式 取消 设定

4 倍 高 取消 设定

5 倍 宽 取消 设定

6 无定义

7 下划线 取消 设定

默认值n=0,

ESC % n  允许/禁止用户自定义字符

格式:  ASCII: ESC  %  n

十进制: 2737 n

 十六进制: 1B25 n

说明:

参数n为一个字节,只有最低位有效。

当n=<*******1>B时,选择用户自定义字符集;

当n=<*******0>B时,选择内部字符集。

0≤n≤255,默认值n=0。

ESC  设置用户自定义字符

格式: ASCII: ESC    y  n  m  x  d1  d2……db

十进制: 27  38  y  n  m  x  d1  d2……db

十六进制: 1B  26  y  n  m  x  d1  d2……db

说明:

该命令用于自定义字符。各参数为:

y:字符的纵向字节数。这里取 y=1,2。

n:自定义字符集的起始ASCII码,n≥32。

m:自定义字符集的终止ASCII码,m≤127。自定义字符个数为m-n+1,最多可定义96个字符。

当只有一个自定义字符时,取m=n。

a:自定义字符的水平方向的点数。

d1 d2……db:自定义字符的数据。每个字符 y×x个字节,m-n+1个自定义字符共有:

(y×x)×(m-n+1)个字节。

每个自定义字符数据的格式:

d1 d3 … d(y×x)×(m-n+1)-1

d2 d4 … d(y×x)×(m-n+1)

样例如下:

发送的命令如下:

ESC y c1 c2 X p1 p2 p3 d4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14

Code 1B 26 02 20 20 07 1F 80 20 00 44 00 80 00 44 00 20 00 1F 80

ESC *   设置图形点阵

格式:  ASCII: ESC  *  m  n1  n2  D1,D2 … Dk

   十进制: 27 42 m  n1  n2  D1,D2 … Dk

 十六进制: 1B 2A m  n1  n2  D1,D2 … Dk

说明:

该命令用来设置点阵图形模式(m)和横向图形点阵。

m = 0,1: 表示打印密度。

0≤n1≤255,0≤n2≤1,0≤Dk≤255,k= n1+ n2×256。

n1,n2为两位十六进制数,n1这低字节,n2这高字节,k= n1+ n2×256,表示该命令下载的要打印图形的横向点数,该值应小于打印机的最大行宽打印点数。如果下送的点图数据超出一行的最大行宽打印点数时,超出的部分被忽略。

m 垂直方向点数 点密度 最大点数 图形打印模式

0 8 单密度 210 相邻点打印

1 8 双密度 420 相邻点不打印

Dk 定义为:

ESC -n 设置/取消下划线模式

格式:  ASCII: ESC  -  n 

   十进制: 27 45 n 

 十六进制: 1B 2D n 

说明:

n = 0, 1, 48, 49

n = 0 or 48,取消下划线模式。

n = 1 or 49, 设置下划线模式。

ESC 2  设定1/6英寸换行量

格式:  ASCII: ESC  2

十进制: 2750

 十六进制: 1B32

说明:

此指令将打印机的换行量设定为1/6英寸。

ESC 3  n 设定 n/144英寸换行量

格式:  ASCII: ESC  3n

十进制: 2751  n

 十六进制: 1B33  n

说明:

此指令将打印机的换行量设定为 n/144英寸。

n=1 - 255。

ESC 〈 打印头归位

格式:  ASCII: ESC 〈

十进制: 2760

 十六进制: 1B3C

说明:

执行该指令后,打针头会回到原位(home的位置)。

ESC =n 设备设置/取消

格式:  ASCII: ESC  =  n 

   十进制: 27 61 n 

 十六进制: 1B 3D n 

说明:

1 ≤n ≤3

默认 n = 1

位 功能 值

0 1

0 打印机选择 取消 设定

1 顾显选择 取消 设定

2 无定义

3 无定义

4 无定义

5 无定义

6 无定义

7 无定义

ESC ?n 取消用户自定义字符

格式:  ASCII: ESC  ?  n 

   十进制: 27 63 n 

 十六进制: 1B 3F n 

说明:

32 ≤n ≤126

ESC @  初始化打印机

格式:  ASCII: ESC  @

十进制: 2764

 十六进制: 1B40

说明:

该命令初始化打印机:使打印机恢复到最初的联机状态,清除以前留下的程序。

ESC D NULL  消除所有的水平制表位置

格式:  ASCII: ESC  D  NULL

十进制: 27 68 0

 十六进制: 1B44 0

说明:

ESC D NUL命令消除所有的水平制表位置,之后再执行的HT命令将无效。

命令(ASCII) 十六进制 功能说明

HT 9 打印位置进行到下一水平制表位置

LF 0a 打印行缓冲器里的内容,并向前走纸一行

CR 0D 打印回车

ESC SP 1B 20 n 设置字符右边的字间距为n个半点距(1/140英寸)

DLE EOT n 10 04 实时状态传送

DLE ENQ n 10 5 对打印机的实时请求

ESC SP n 1B 20 n 设置字符右间距

ESC ! n 1B 21 n 设置字符打印方式

ESC % n 1B 25 n 允许/禁止用户自定义字符

ESC  1B 26 设置用户自定义字符

ESC * 1B 2A 设置图形点阵

ESC - n 1B 2D n 设置/取消下划线模式

ESC 2 1B 32 设定1/6英寸换行量

ESC 3  n 1B 33 n 设定 n/144英寸换行量

ESC 〈 1B 3C 打印头归位

ESC = n 1B 3D n 设备设置/取消

ESC ? n 1B 3F n 取消用户自定义字符

ESC @ 1B 40 初始化打印机

ESC D NULL 1B 44 0 消除所有的水平制表位置

ESC E n 1B 45 0 设置/取消着重模式

ESC G n 1B 47 0 设置/取消重叠模式

ESC J n 1B 4A n 执行n/144英寸走纸

ESC K n 1B 4B n 打印并反向走纸

ESC R n 1B 52 n 选择国际字符集

ESC U n 1B 55 n 设置/取消单向打印

ESC a n 1B 61 n 选择对齐模式

ESC c 3 n 1B 63 33 n 输出纸尽传感器

ESC c 4  n 1B 63 34 n 设定缺纸时停止打印

ESC c 5  n 1B 63 35 n 允许/禁止走纸按键

ESC d n 1B 64 n 打印并进纸n字符行

ESC e n 1B 65 n 打印并反向进纸n字符行

ESC p 1B 70 产生钱箱驱动脉冲

ESC r n 1B 72 n 选择打印颜色

ESC t n 1B 73 n 选择字符集

ESC { n 1B 7B n 设置/取消倒向打印模式

FS  ! 1B 75 n 汉字综合选择

FS  & 1C 26 进入汉字打印方式

FS ~ S 1C 7E 53 n 选择汉字打印速度

FS · 1C 2E 退出汉字打印方式

FS 2 1C 32 用户自定义汉字

FS ? c1 c2 1C 3F c1 c2 取消用户自定义汉字

FS C n 1C 43 n 设定日文汉字编码系统

FS S n1 n2 1C 53 n1 n2 设定全角汉字字间距

FS W n 1C 57 n 设定/取消四倍角汉字模式

GS ( F pL pH a m nL nH 1D 28 设置黑标定位偏移量

GS  In 1D  49 n 传送打印机ID

GS V 1D 56 m 走纸到切纸位置

1D 56 m n

GS  a  n 1D  61 n 设定/取消自动返回状态

GS  r  n 1D  72 n 状态传送

GS  z 1D  7A 设置联机恢复等待时间

vb点虐 打印问题

可以将打印机默认打印设置改为黑白打印,如果打印对象是RGB配色,打印机驱动转换为CMYK颜色时,黑色都是由彩色墨水组成的

2.可以试一下图片从一个标准灰度图片格式化而来,这样图片自身只有黑白色,也许可以

vb点虐 Document_PrintPag 打印

我帮你把最后一部分的语句顺序调换一下。你试一试

sub button1_click() '---执行打印

Dim pd As PrintDocument = New PrintDocument

pd.PrinterSettings = PrintDialog1.PrinterSettings

If _PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then

for i=0 to 1 '这样可以两次截图

CaptureScreen() '--执行前面自定义函数截图

AddHandler pd.PrintPage, AddressOf Document_PrintPage

pd.Print()

Threading.Thread.sleep(100) ‘ 再加上一个间隔

next

end sub


本文名称:vb点虐 打印照片 vba打印图片
文章位置:http://azwzsj.com/article/ddgciis.html