中文打印 通常有两种方式 1、使用字体库,代价高,使用简单速度快 2.通过图片方式打印,免费使用,速度适中
官方有下载Fnthex32.dll https://download.csdn.net/download/qq598235031/11357248
我这里提供一个,本人亲自试验在win7 64位 win10 64位操作系统上 商业正式使用。
接下来重点介绍,如何使用Fnthex32.dll 进行中文打印,以win10 64位操作系统为例
1、把Fnthex32.dll文件拷贝到 C:\Windows\SysWOW64
2、Fnthex32.dll 文件中有个方法 GETFONTHEX
[DllImport("Fnthex32.dll")]
public static extern int GETFONTHEX(
string ChineseText,//转换的文本
string FontName,//打印字体
int Orient,//方向
int Height,//字体高度,点阵高度
int Width,//点阵宽度
int IsBold,//是否加粗0,1
int IsItalic,//是否斜体0,1
StringBuilder ReturnPicData);//存储的内容
3、使用.net 语言编程
1)声明方法
[DllImport("fnthex32.dll")]
public static extern int GETFONTHEX(
string ChineseText,
string FontName,
int Orient,
int Height,
int Width,
int IsBold,
int IsItalic,
StringBuilder ReturnPicData);
2)调用方法,生成zebra可识别的指令
StringBuilder sb = new StringBuilder(30240);
GETFONTHEX("丰乳肥臀", "Arial", 0, 60, 20, 1, 0, sb);
sb = sb.Replace("OUTSTR01", "name11");
其中 sb就是生成的指令;直接发送打印机即可。Arial 是字体
生成的例子
~DGname11,00720,012,mL01CgH01E1E0EL038P01F1F0F8K03EP01F1F0F8K03FP03F1E0FL01F8O
03E1E0FL01F8O03E1E0FM0F8O07C1E0FM0F8O07C1E0FM07801EL0781E0FM07H03FL0F81E0F381OF8
K0F81E0F781OF8K0F01E0F7C0OF8J01F3KFEJ03CO01FBKFEJ03CO03F81E0FL03CK03FH03F01E0FL0
3CK03FH07F01E0FL07CK03FH07F01E0FL07CK03FH07F01E0FL07C03CH03FH0HF01E0FL07IFEH03F0
1EF01E0FL07IFEH03F01EF01E0FL07803EK03CF01E0FL07803CK038F01E0FL0F807CK038F01E0F1C
J0F807CM0F01E0F3EJ0FH07CM0F01E0F3FJ0FH07CM0NFI01FH07CM0NFI01FH078M0FP01EH078M0FP
03EH078M0F01EM03CH078M0F01F1EK07CH0F8M0F03F1FK078H0F8M0F03F0F8J0F800F8H03FI0F07E
07EI01FI0F8H03FI0F07C03FI01FI0FI03FI0F0F801F8H03EI0FI03FI0F0F801FCH07C1C1FI03FI0
F1FI0FCH0F81F1FI03FI0F3EI07C01FH0IFI03FI0F7CI07C03EH07FEN0F78I03C07CH03FEN0HFJ03
C0F8H01FCN0FEJ01C0FJ0F8N0FCR0EnU0
3、zebra调用图片 打印
刚才通过GETFONTHEX 方法生成的zebra可识别的图片,通常存放在设备的缓冲区;
现在需要使用zebra指令调用图片,并打印。这里写个简单例子
^XA ^FO30,670^XGname11^FS ^XZ~PS