本文 打印机型号:TSC TTP-243E Pro   选配 USB    分辨率200 DPI,1 点=1/8 mm (300 DPI,1点 =1/12 mm)

一、 打印机安装

1、安装说明: 官方文档

2、驱动下载:驱动

二、程序调用

1、下载官方提供的 Java 调用 范例

解压 文件,如下:

其中提供了调用实例(但会报错,找不到TSCLIB),如下

import com.sun.jna.Library;
import com.sun.jna.Native;
public class Main {public interface TscLibDll extends Library {TscLibDll INSTANCE = (TscLibDll) Native.loadLibrary ("TSCLIB", TscLibDll.class);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) {TscLibDll.INSTANCE.openport("TSC TTP-243E Pro");TscLibDll.INSTANCE.sendcommand("REM ***** This is a test by JAVA. *****");TscLibDll.INSTANCE.setup("100", "100", "5", "8", "0", "0", "0");TscLibDll.INSTANCE.clearbuffer();TscLibDll.INSTANCE.printerfont ("100", "10", "3", "0", "1", "1", "(JAVA) DLL Test!!");TscLibDll.INSTANCE.barcode("100", "40", "128", "50", "1", "0", "2", "2", "123456789");TscLibDll.INSTANCE.windowsfont(400, 200, 48, 0, 3, 1, "arial", "DEG 0");TscLibDll.INSTANCE.windowsfont(400, 200, 48, 90, 3, 1, "arial", "DEG 90");TscLibDll.INSTANCE.windowsfont(400, 200, 48, 180, 3, 1, "arial", "DEG 180");TscLibDll.INSTANCE.windowsfont(400, 200, 48, 270, 3, 1, "arial", "DEG 270");TscLibDll.INSTANCE.printlabel("1", "1");TscLibDll.INSTANCE.closeport();}
}

但在,运行时会找不到.dll文件:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'TSCLIB': ???????¨at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:164)at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:237)at com.sun.jna.Library$Handler.<init>(Library.java:140)at com.sun.jna.Native.loadLibrary(Native.java:375)at com.sun.jna.Native.loadLibrary(Native.java:360)at lunch.Test$TscLibDll.<clinit>(Test.java:16)at lunch.Test.main(Test.java:39)

即使如 文档中要求  Copy the “TscLib.Dll” to the folder \\WINDOWS\system32. 也是一样的效果

无奈只好另求他法,究极原因还是因为这个 TscLib.Dll 找不到

2、DLL文件使用

2.1、把dll文件放到lib文件夹中,也可以放在外面,后面加载它能找到就行,如下:

2.2、 加载lib 时 build path 是找不到 .dll 文件的,需要如下的配置

快捷键 Alt + Enter 进入属性配置

 2.3、新建 JniDll 类实例化接口,加载 TSCLIB

package lunch;import com.sun.jna.Library;
import com.sun.jna.Native;public class JniDll {public interface TscLibDll extends Library {TscLibDll INSTANCE = (TscLibDll) Native.loadLibrary ("TSCLIB", TscLibDll.class);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);}
}

2.4、 调用 jni方法

package lunch;import lunch.JniDll.TscLibDll;public class Tester {// 加载 dll 库文件static {System.loadLibrary("TSCLIB");}public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("------test----------");//设置打印机型号TscLibDll.INSTANCE.openport("TSC TTP-243E Pro");TscLibDll.INSTANCE.sendcommand("REM ***** This is a test by JAVA. *****");//设置标签的寬度、高度、列印速度、列印浓度、感应器类别、gap/black mark 垂直间距(标签纸的间距)、gap/black mark 偏移距离)TscLibDll.INSTANCE.setup("60", "40", "5", "8", "0", "3", "0");TscLibDll.INSTANCE.clearbuffer();//打印文本TscLibDll.INSTANCE.printerfont ("20", "10", "3", "0", "1", "1", "(JAVA) DLL Test!!");//设置条形码(不是二维码) 位置、大小、内容TscLibDll.INSTANCE.barcode("40", "30", "128", "50", "1", "0", "2", "2", "123456789");//设置文本(位置(x,y)、大小、旋转角度、文字X方向放大倍率,1~8 、文字Y方向放大倍率,1~8 字体arial、内容)TscLibDll.INSTANCE.windowsfont(40, 20, 18, 0, 3, 1, "arial", "DEG 0");TscLibDll.INSTANCE.windowsfont(400, 200, 48, 90, 3, 1, "arial", "DEG 90");TscLibDll.INSTANCE.windowsfont(400, 200, 48, 180, 3, 1, "arial", "DEG 180");TscLibDll.INSTANCE.windowsfont(400, 200, 48, 270, 3, 1, "arial", "DEG 270");//画框String command = "BOX 16,24,296,168,3"; TscLibDll.INSTANCE.sendcommand(command); //打印的页数TscLibDll.INSTANCE.printlabel("1", "1");TscLibDll.INSTANCE.closeport();}
}

注:文档的接口中提供的接口 barcode(a,b,c,d,e,f,g,h,I) 打印的是 条形码,若想实现打印二维码 需要自定义命令, 接口说明可去参考提供的 Android 接口文档

详细指令请参考 TSPL

 public static void TscPrinter(String qrCode,String mT,String mS,String mD) {// TODO Auto-generated method stubSystem.setProperty("jna.encoding", "GBK");// 支持中文String mP ="P:15869423";String mV ="V:45821";//初始化 :设备 型号TscLibDll.INSTANCE.openport("TSC TTP-243E Pro");
//        參數:
//      a: 字串型別,設定標籤寬度,單位 mm
//      b: 字串型別,設定標籤高度,單位 mm
//      c: 字串型別,設定列印速度,(列印速度隨機型不同而有不同的選項)
//            1.0: 每秒1.0吋列印速度
//            1.5: 每秒1.5吋列印速度
//            2.0: 每秒2.0吋列印速度
//            3.0: 每秒3.0吋列印速度
//            4.0: 每秒4.0吋列印速度
//            6.0: 每秒6.0吋列印速度
//            8.0: 每秒8.0吋列印速度
//            10.0: 每秒10.0吋列印速度
//      d: 字串型別,設定列印濃度,
//            0~15,數字愈大列印結果愈黑
//      e: 字串型別,設定使用感應器類別
//            0 表示使用垂直間距感測器(gap sensor)
//            1 表示使用黑標感測器(black mark sensor)
//      f: 字串型別,設定gap/black mark 垂直間距高度,單位: mm
//      g: 字串型別,設定gap/black mark 偏移距離,單位: mm,此參數若使用一般標籤時均設為0 TscLibDll.INSTANCE.setup("60","40","4","12","0","3","0");TscLibDll.INSTANCE.clearbuffer();//二维码的 位置 、大小、内容//80 80(x,y位置,8:大小)String command = "QRCODE 70,80,Q,5,A,0,M2,S7,\"" + qrCode+"\"";
//        String command = "QRCODE 80,80,Q,8,A,0,M2,S7,\"" + qrCode+"\""; //传送指令TscLibDll.INSTANCE.sendcommand(command); TscLibDll.INSTANCE.windowsfont(70, 10, 80, 0, 2, 0, "Segoe UI Black", "Title");   TscLibDll.INSTANCE.windowsfont (360, 30, 32,0, 2, 0, "arial", "Logo");//          說明: 使用 Windows TTF 字型列印文字
//        參數:
//        a: 整數型別,文字 X 方向起始點,以點(point)表示。
//        b: 整數型別,文字 Y 方向起始點,以點(point)表示。
//        c: 整數型別,字體高度,以點(point)表示。
//        d: 整數型別,旋轉角度,逆時鐘方向旋轉
//                  0 -> 0 degree
//              90-> 90 degree
//              180-> 180 degree
//              270-> 270 degree
//        e: 整數型別,字體外形
//                  0-> 標準(Normal)
//              1-> 斜體(Italic)
//              2-> 粗體(Bold)
//              3-> 粗斜體(Bold and Italic)
//        f: 整數型別, 底線
//              0-> 無底線
//              1-> 加底線
//        g: 字串型別,字體名稱。如: Arial, Times new Roman, 細名體, 標楷體
//        h: 字串型別,列印文字內容。TscLibDll.INSTANCE.windowsfont(250, 80, 32, 0, 2, 0, "arial", mP);        TscLibDll.INSTANCE.windowsfont(250, 110, 32, 0, 2, 0, "arial", mT);       TscLibDll.INSTANCE.windowsfont(250, 140, 31, 0, 2, 0, "arial", mV);       TscLibDll.INSTANCE.windowsfont(245, 170, 31, 0, 2, 0, "arial", mS);TscLibDll.INSTANCE.windowsfont(250, 210, 31, 0, 2, 0, "arial", mD);  TscLibDll.INSTANCE.windowsfont (120, 247, 35,0, 2, 0, "Microsoft YaHei UI", "MADE IN CHINA");//打印的页数  3:三页TscLibDll.INSTANCE.printlabel("1", "3");TscLibDll.INSTANCE.closeport();}

***关于打印图片   

   根据文档指令

需先将 想要打印的图片,转换成  .pcx  格式,放在本地路径下

然后根据 命令,打印

      /* * C:\\11.PCX     图片路径* 11.PCX          图片名* */TscLibDll.INSTANCE.downloadpcx("C:\\11.PCX", "11.PCX");/*** * (x,y)* 70  ,15* */TscLibDll.INSTANCE.sendcommand("PUTPCX 70,15,\"11.PCX\"");

**注意:运行后,若是报以下错误  ,说明你所依赖的 .dll 文件是 32位的

Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\AecplseWorksp\Tsc\lib\TSCLIB.dll: Can't load IA 32-bit .dll on a AMD 64-bit platformat java.lang.ClassLoader$NativeLibrary.load(Native Method)at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929)at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1847)at java.lang.Runtime.loadLibrary0(Runtime.java:870)at java.lang.System.loadLibrary(System.java:1119)at com.tsc.lunch.Test.<clinit>(Test.java:15)

若是你的环境是64位的,请将你的 JDK 环境 换成 32位的 同样 eclipse也是32位的才行   

亦或者可以去下载 对应的  .dll  文件,附上地址:Windows dall 下载

解压如下:

注意:打包JRE时,若是加载不到 dll文件,改为如下

        // 加载 dll 库static {//  System.loadLibrary("TSCLIB");//打包时用,否则加载不到 dll库System.loadLibrary("lib/TSCLIB");}

结束:奉上测试时打印的 标签

若想Android实现 可参考上一篇文文章 :Android 连接 TSC打印机, 打印标签(文字、图片)

Java TSC 打印机调用java 实例 打印标签(文字、图片)相关推荐

  1. c 调用java包_C#调用java代码(IKVMC)

    参考资料:https://blog.csdn.net/threadroc/article/details/51406587 参考1:http://www.cnblogs.com/Jack-Blog/p ...

  2. scala调用java代码_scala调用java代码

    scala调用java代码 @(SCALA)[scala] 在scala中调用java代替非常非常简单,直接调用即可 (一)一个简单示例 1.创建一个java类 package com.lujinho ...

  3. python调用java方法_python调用java

    一.环境确认: 首先,要确认安装的jdk版本是1.8以上:其次,jdk安装位数与python安装的位数一致,及要么一起64位版本要么一起32版本. (以上2点不满足均会报错,比如:not found ...

  4. ajax调用后台java类_ajax调用java后台方法是什么

    ajax是一种基于 JavaScript和HTTP请求(HTTP requests),广泛应用在浏览器的网页开发技术.那么,ajax调用java后台方法是什么? var http_request=fa ...

  5. jni 调用java接口_JNI 调用 JAVA 接口

    JNI 调用 JAVA 接口 介绍 JNI 是本地语言编程接口.它允许运行在JVM中的Java代码和用C.C++或汇编写的本地代码相互操作. 由于一些加密等情况的需要,需要在 so 层获取一些信息用于 ...

  6. python调用java方法_python调用Java方法传入HashMap ArrayList

    1.Java代码: package com; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap ...

  7. Java,AXIS,webService 调用 完整实例 xml 入参出参

    * @param model* @return*/@ResponseBody@RequestMapping(value = "getDbPatientInfo" )public S ...

  8. java windows 打印机_windows系统 TSC 打印机的JAVA实现

    导入JNA jar,把TscLibDll放到系统system32下,注意在64为系统里要放到system32下 TscLibDll.INSTANCE.openport("TSC TTP-34 ...

  9. java传真发送_调用java API发送传真

    最近搞了一个java发送传真程序,在网上搜了半天,没找到具体的例子,最后找到了国外的开源技术jacob,才解决了这个问题. 环境要求:windows xp系统,jdk 1.4(不要太高或太低,不然会发 ...

最新文章

  1. EGLImage与纹理
  2. 好程序员大数据教程:SparkShell和IDEA中编写Spark程序
  3. RabbitMQ的元数据重建
  4. Redis与关系型数据库的同步问题
  5. 快速入门Web前端开发的正确姿势
  6. Android 读写SDcard (转)
  7. dreamweaver 正则表达式为属性值加上双引号_「前端篇」不再为正则烦恼
  8. 【小家Java】Future与FutureTask的区别与联系
  9. 重磅推荐 | 我精选的15个电子书下载网站!
  10. 2022年指数与指数公司行业研究报告
  11. 【裸金属服务器学习笔记】
  12. 英国内政大臣:科技公司给信息加密不可接受
  13. 你知道CAD软件将圆弧与直线转换成多段线的方法吗?
  14. 龙芯3A4000处理器解读①
  15. VMware安装Centos7_64位系统安装步骤
  16. mark制图软件_VectorWorks(三维设计制图软件) V2019 Mac版
  17. 如何在java中产生随机数
  18. Effective C++ 规则39:明智而谨慎的使用private继承
  19. 流氓软件 电脑软件管家
  20. 本机如何传文件到VMware 中

热门文章

  1. 计算机支持率排名,《梦幻西游》电脑版第五十五次服务器合并投票结果公告
  2. 智能指针相关问题解答
  3. 单位要求必须核心期刊才能评选,怎么找核心期刊?
  4. git 上传项目的时候输入账号密码显示错误
  5. 鸿蒙系统全面屏手势,【魅族16X评测】系统:mBack全面屏手势 交互流畅好用-中关村在线...
  6. 与美团合作外卖送家电3C 苏宁易购本月第二次涨停
  7. webstorm 手动安装外部插件下载安装
  8. 零基础学习 Hadoop 该如何下手?
  9. 再也不用担心偶像“塌房”了!资本杀入虚拟偶像
  10. 《巫师3》、UE4与游戏