我是靠谱客的博主 潇洒高跟鞋,最近开发中收集的这篇文章主要介绍佳博打印机接入(java),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

需求:某司要求做的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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部