delphi:斑马打印机ZPL指令打印中文及二维码
来源:互联网 发布:大陆没有言论自由 知乎 编辑:程序博客网 时间:2024/06/10 16:29
一、中文生成BMP图片,需要注意的BMP图片要使用1BIT的,主要是下载快,图像清晰
使用GetTextExtentPoint32函数获取中文字符的长和高后设置为BMP的width和height
这样图片大小就和文字大小完全样了
function PrintBMP(const bmp:Tbitmap):boolean;var p: pbyte; i, j, n, m, mm, nWidth: integer; s: AnsiString;begin n := bmp.width div 8; m := bmp.width mod 8;
if m > 0 then
inc(n); mm := n mod 4; nWidth := n + (4 - mm); bmp.width := nWidth * 8; for i := 0 to bmp.height - 1 do begin p := bmp.ScanLine[i]; for j := 0 to nWidth - 1 do begin Buf.write(p[j], 1); end; end;end;
二、1bit的BMP图片 1个byte存储8个像素,需要对齐,否则会出现多余的点
我看过不少人用bmp.Canvas.StretchDraw()来使用图片适应调整后的图片大小,
实现上只要把bmp.width设置为新的尺寸即可
三、斑马打印机接受的图片是要反色的
四、ZPL中打印二维码的指令如下
Format('^FO%d,%d,2^BQN,2,%D,H^FDHA,%s^FS',[left,top,nsize,lpdata]);
但是这种指令没法让BMP贴近条码的顶部(?好像留有一段空白),而且不支持
很多标签,譬如名片?eMail?Tel等,为了更加良好的体验,可以使用zixing、
zint、日本的QRCODE等模块先生成二维码图片再打印
五、使用WriteRawStringToPrinter函数直接写入指令到默认打印机
procedure WriteRawStringToPrinter(PrinterName: String; buf: pbyte; nsize: integer);var hp: THandle; n, m: cardinal; DocInfo1: _DOC_INFO_1a; s, s2: AnsiString;begin s := WideStringToAnsiString(PrinterName, 936); if not OpenPrintera(PAnsiChar((s)), hp, nil) then Exit; with DocInfo1 do begin pDocName := PAnsiChar('TestDoc'); pOutputFile := nil; pDataType := 'RAW'; end; if winspool.StartDocPrintera(hp, 1, @DocInfo1) > 0 then begin if StartPagePrinter(hp) then begin if WritePrinter(hp, buf, nsize, m) then begin if EndPagePrinter(hp) then begin if EndDocPrinter(hp) then ClosePrinter(hp); end else begin EndDocPrinter(hp); ClosePrinter(hp); end; end else begin EndPagePrinter(hp); EndDocPrinter(hp); ClosePrinter(hp); end; end else begin EndDocPrinter(hp); ClosePrinter(hp); end; end;end;
0 0
- delphi:斑马打印机ZPL指令打印中文及二维码
- delphi:斑马打印机ZPL指令打印中文及二维码,补充说明
- Delphi调用打印机的ZPL指令来打印数据
- C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)
- C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)
- C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)
- C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)
- C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)
- Delphi 调用打印机指令ZPL实例--并口
- Delphi 调用打印指令ZPL--USB
- C#调用斑马打印机打印条码标签(支持COM/LPT/USB/ZPL/EPL/Bitmap)
- C#调用斑马打印机打印条码标签(支持COM/LPT/USB/ZPL/EPL/Bitmap)
- C#调用斑马打印机打印条码标签(支持COM/LPT/USB/ZPL/EPL/Bitmap)
- 斑马打印机指令集
- 斑马打印机打印图片
- 斑马打印机EPL2指令自动打印_配合扫描枪边扫边打
- ZPL 打印条码、二维码及小票(中文/汉字),生成条码、二维码图片【Asp.Net】-含示例代码
- ZPL 打印条码、二维码及小票(中文/汉字),生成条码、二维码图片【Asp.Net】-含示例代码
- Collections工具类、Arrays工具类
- Eclipse启动时fail to create Java Virtual Machine问题的解决
- C3P0-配置文件详解
- NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
- loadrunner自己定义变量并且引用变量
- delphi:斑马打印机ZPL指令打印中文及二维码
- IplImage 加载图像
- Android Apk 代码混淆与资源文件混淆实战
- XSLT个人摘录
- JAVA程序员应该知道的linux命令
- 使用jekyll+github为自己搭建一个博客
- C++学习笔记(四)typedef
- Eclipse快捷键
- C语言格式化输入/输出