概述
需求:某司要求做的web端应用调用本地打印机(佳博),打印内容从后端获取。思路变成了前端获取内容,传输到打印机,调用打印功能。这里我的另一篇文章已经完成前端带参数调用打印功能,有需要的同志们可以去TODO取,该篇文件主要是做java实现调用佳博打印机打印功能。
1. 下载佳博的开发文档,下载打印机的对应驱动,跟厂家要就行
这里要注意这个dll文件有32位跟64位两种,这里要注意引用这个文件要跟你的jdk的位数保持一致,你的jdk是32就用32的dll文件,是64就用64的dll文件。
2. 创建maven项目
2.1 依赖如下
<!--打印的依赖start-->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>3.2.5</version>
</dependency>
<!--打印的依赖send-->
2.2 把dll放到根目录下
2.3 其余代码如下,运行main函数即可实现打印机的调用
//调用本地函数
public interface TscLibDll extends Library {
TscLibDll INSTANCE = (TscLibDll) Native.loadLibrary("TSCLIB", TscLibDll.class);
// 以下为dll函数库支持的方法,方法的作用与参数说明见附件【dll函数库api文档】
int about();
int openport(String pirnterName);
int closeport();
int sendcommand(String printerCommand);
int setup(String width, String height, String speed, String density, String sensor, String vertical, String offset);
int downloadpcx(String filename, String image_name);
int barcode(String x, String y, String type, String height, String readable, String rotation, String narrow, String wide, String code);
int printerfont(String x, String y, String fonttype, String rotation, String xmul, String ymul, String text);
int clearbuffer();
int printlabel(String set, String copy);
int formfeed();
int nobackfeed();
int windowsfont(int x, int y, int fontheight, int rotation, int fontstyle, int fontunderline, String szFaceName, String content);
}
public static void main(String[] args) throws Exception {
String printContent = "要打印的内容";
System.setProperty("jna.encoding", "GBK");
// TscLibDll.INSTANCE.about();
// 调用打印机的流程如下
// 1.指定打印机
//Gprinter GP-9025T这里是打印机的名字,在设备里面能找到
TscLibDll.INSTANCE.openport("Gprinter GP-9025T");
// 2.设置打印机纸张规格 设定标签的宽度、高度、打印速度、打印浓度、传感器类别、gap/black mark 垂直间距、gap/black mark 偏移距离)
TscLibDll.INSTANCE.setup("20", "120" +
"", "5", "8", "0", "0", "0");
// 4.将字体写入暂存区准备打印
// a: 字符串型别,文字X 方向起始点,以点(point)表示。(200 DPI,1 点=1/8 mm, 300 DPI,1 点=1/12 mm)
// b: 字符串型别,文字Y 方向起始点,以点(point)表示。(200 DPI,1 点=1/8 mm, 300 DPI,1 点=1/12 mm)
// c: 字符串型别,内建字型名称,共8 种。1: 8*/12 dots 2: 12*20 dots 3: 16*24 dots 4: 24*32 dots 5: 32*48 dots TST24.BF2: 繁体中文24*24 TSS24.BF2: 简体中文24*24 K: 韩文 24*24
// d: 字符串型别,设定文字旋转角度 0: 旋转0 度 90: 旋转90 度 180: 旋转180 度 270: 旋转270 度
// e: 字符串型别,设定文字X 方向放大倍数,1~8
// f: 字符串型别,设定文字X 方向放大倍数,1~8
// g: 字符串型别,打印文字内容
// 3.清除上次打印后的缓存
TscLibDll.INSTANCE.clearbuffer();
TscLibDll.INSTANCE.printerfont("80", "0", "TSS24.BF2", "90", "2", "2", printContent );
// 5.调用打印机打印a: 字符串型别,设定打印标签个数(set) b: 字符串型别,设定打印标签份数(copy)
TscLibDll.INSTANCE.printlabel("1", "2");
// 6.断开和打印机的连接
TscLibDll.INSTANCE.closeport();
}
2.4 中文乱码问题
用加解密解决,在TODO文章中有写。
最后
以上就是潇洒高跟鞋为你收集整理的佳博打印机接入(java)的全部内容,希望文章能够帮你解决佳博打印机接入(java)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复