精华内容
下载资源
问答
  • 记录一下ionic3使用cordova插件连接TSC蓝牙热敏打印机打印功能,成品图展示: 引入cordova插件: cordova plugin add git://github.com/anilbhanushali/cordovaPluginTscPrinter 这个插件中默认引入的有TSC打印机的...

    记录一下ionic3使用cordova插件连接TSC蓝牙热敏打印机打印功能,成品图展示:
    在这里插入图片描述引入cordova插件:
    cordova plugin add git://github.com/anilbhanushali/cordovaPluginTscPrinter
    这个插件中默认引入的有TSC打印机的SDK,有兴趣的可以自己解析看一下SDK源码

    连接打印机

    首先要做一个蓝牙搜索配对的界面,这个官方提供的有插件,不想写的网上也有许多现成的,Android手机系统自带的蓝牙是无法链接上打印机的,需要通过打印机sdk中openport(String address)方法进行连接,传递的参数为设备码,即下图中的00:0C:BF:27:7D:A9,连接上后打印机无线灯变成蓝色,连接方法:
    1.首先在ts中声明 declare let window: any;
    2.传入的item是设备信息,通过调用cordovaPluginTscPrinter插件中的connectPrinter方法进行连接。

     connect(item) {
        this.disconnect();
        this.Share.isConnect = {};
        this.deviceId = item.address;
        window.TscPrinter.connectPrinter(this.deviceId,(data)=> {
       
        },(err)=> {
    
    
        })
    
      }
    
    

    在这里插入图片描述

    蓝牙打印功能实现

    1.同样在要打印的ts中声明declare let window: any;
    2.建立打印模板,根据打印纸的纸张大小建立模板:

     window.TscPrinter.setupPrinter([60,100,5,12,0,2,0],function (data) {
        },function(err){
          alert(err);
        });
    

    3.清除缓存

      window.TscPrinter.clearBuffer([],function (data) {
        },function(err){
          alert(err);
        });
       
    

    4.打印文字
    由于文字可能出现过长的,我的高度并不是写死的,而是根据字数去自动的增加高度,方法比较笨,但是能用(SDK中有换行的方法,不过好像是通过字节数去换行,我这里涉及中文,换行后会出现乱码,有能力的可以自己研究),另外:由于打印中文时会出现中文乱码情况,我采用两个参数去调用,第一个参数是打印文字的位置字体等配置参数,其中 FONT001是字体名称,这个字体是通过PC连接打印机向打印机中内部下载的字体,我下载的黑体命名为FONT001,其次cordovaPluginTscPrinter插件中sendText方法我进行了改造,将编码转换成GB2312进行打印中文,修改插件需要将插件下载到本地,修改后先将工程中的插件rm掉,在把本地修改后的插件add进工程:

    打印文字ts调用方法:

      window.TscPrinter.sendText(["TEXT "+height+",500,\"FONT001\",270,2,2,\"",sub],function(data){
    
            },function(err){
    
            });
    
    private String sendText(JSONArray args) throws JSONException {
            String command = args.getString(0);
    		byte[] QQ2 = new byte[1024];
            try {
                QQ2=args.getString(1).getBytes("GB2312");
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            TscDll.sendcommand(command);
            TscDll.sendcommand(QQ2);
            return TscDll.sendcommand("\"\r\n");
        }
    
    

    5.打印二维码,最后一个参数是你要写进二维码的数据,pringQrCode方法插件中没有,需要自己写二维码的调用方法,代码贴出来,需要的直接粘贴进去,然后重新add插件即可:

     private String printQrCode(JSONArray args) throws JSONException {
            Integer x = args.getInt(0);
            Integer y = args.getInt(1);
            String ecc = args.getString(2);
            String cell = args.getString(3);
    		String mode = args.getString(4);
    		String rotation = args.getString(5);
    		String model = args.getString(6);
    		String mask = args.getString(7);
    		String content = args.getString(8);
            return TscDll.qrcode(x,y,ecc,cell,mode,rotation,model,mask,content);
        }
    
     window.TscPrinter.printQrCode([50,540,"L","10","M","0","M2","S3","A"+stockLocation+"789XYZ"+itemId],function (data) {
        },function(err){
          alert(err);
        });
    

    6.最后是打印指令,不发这个指令上面做的等于白费

     window.TscPrinter.printLabel([1, 1], (data)=>{
          load.dismiss();
          this.appService.toast("打印成功!");
        },(err)=>{
          load.dismiss();
          this.appService.toast("打印失败!");
        });
    

    注意:修改插件时,无论是修改参数还是增加方法删除方法,凡是对方法的结构进行修改操作的,都需要去www目录下修改js文件中对应的方法,否则在打包时会报错。

    第一次发博,不喜勿喷,有问题加WX zt924099861,知无不言,IOS模块见我下一篇

    展开全文
  • 不知道大家有没有遇到这种情况,有些东西想整理但却不知道怎么去整理。在做之前一头雾水,百度上也找不到答案,然后搞出来又发现没什么内容,所以...(热敏打印机要用热敏纸)说明有关打印机,一般都会提供 有关开发...

    不知道大家有没有遇到这种情况,有些东西想整理但却不知道怎么去整理。在做之前一头雾水,百度上也找不到答案,然后搞出来又发现没什么内容,所以好像也没什么可整理。

    但是更多,我想说的是,我们还是要学会去总结,为什么我花了那么长时间,以及下次遇到这种情况,我如何下手?也希望对和我这样的菜菜有点帮助。

    需求

    Android蓝牙连接TSC标签打印机打印。(热敏打印机要用热敏纸)

    说明

    有关打印机,一般都会提供 有关开发的 SDK ,开发文档。Android可以参考,其实这可能对很多人来说都是很简单的一件事,但是,难免会遇到一些意外。

    回顾当时

    其实刚开始还有点信心满满,然后把 jar 包复制到 lib 文件夹中,然后将文档提供的代码复制到 Android 中,然后结果:失败的。崩掉

    然后就开始了我的找问题之路···各种测试,大多都是靠运气

    效果

    总结

    问题一:在代码中有一个参数是设置打印的份数,以及初始化的时候会设置纸张的大小间隙等等。打印机打印一张出来很多张,并且执行一次之后打印机就报 卡纸异常?

    这有时候不是代码问题,开发的时候会给一个工具包,进行感应器矫正就可以正常了(这里没有连接打印机,先读取状态连接打印机再进行操作)

    问题二:指令不执行

    注意你的指令后面有没有/r/n  ,指令可以分段,在结束位置加上 /r/n  执行

    问题三:打印的文本较长,不会自动换行(比如上方的二三行是一个内容)

    这里我不知道有没有什么特定的设置,但是我通过其他方式实现了效果,把原有的字符串进行分割分行打印

    for (int i = 0; i < invCode.length(); i = i + 10) {

    TscDll.sendcommand("TEXT 350," + (75 + i * 3) + ","0",0,12,12,3," " + invCode.substring(i, i + 10 < invCode.length() ? i + 10 : invCode.length()) + "" rn ");

    }//invCode为打印的内容

    问题四:中文乱码问题(上面效果图就是中文乱码格式之一,成功的没有保存图片)

    刚开始我也看了文档,在打印文字的时候可以选择相应的字体进行打印,首先保证这个打印机存在某种字体支持中文(用工具把字体传入打印机),然后进行调用。根据这个思路,进行了一系列的操作还是无法解决中文乱码的问题

    实际上操作是不要直接传中文,要将文字转换为byte[] 类型进行提交

    String SC1="这是一段文字";byte[] QQ2 = new byte[1024];try{

    QQ2=SC1.getBytes("GB2312");

    }catch(UnsupportedEncodingException e) {//TODO Auto-generated catch block

    e.printStackTrace();

    }

    TscDll.sendcommand("TEXT 20,30,"FONT001",0,2,2,"");

    TscDll.sendcommand(QQ2);

    TscDll.sendcommand(""rn");

    最后

    这是两个月之后再回过头来整理,不知道有没有遗漏的地方。虽然好像是一个很简单的功能。but 这是从外部对接过来的项目,遇到了一系列的配置问题不说(比如之前我们会引用v4的包,但是现在都统一AndroidX),再到打印文档的阅读(还是英文版的),根据提供的demo进行调试,以及遇到的一系列问题,以及百度上找不到答案的焦急(也找了官网)。然后一遍一遍让自己静下心来阅读参考文档。。。年前做的,再到年后再去客户那边的时候,已经正在使用了,当时第一眼还没认出来那竟是我做的东西,那一刻,一丢丢的成就感

    展开全文
  • 苹果手机连接蓝牙打印机可以直接通过系统设置中的蓝牙进行连接,所有工程中就没有做连接打印机的模块; 首先自定义一个cordova插件,引入IOS模块,将官方提供的IOS SDK复制进去,最后目录为: 修改plugin.xml文件,...

    苹果手机连接蓝牙打印机可以直接通过系统设置中的蓝牙进行连接,所有工程中就没有做连接打印机的模块;
    首先自定义一个cordova插件,引入IOS模块,将官方提供的IOS SDK复制进去,最后目录为:
    在这里插入图片描述

    修改plugin.xml文件,引入sdk文件:

    <header-file src="src/ios/TscPlugin.h" />
        <header-file src="src/ios/TSCSDK.h" />
        <source-file src="src/ios/TscPlugin.m" />
        <source-file src="src/ios/libTSCSDK.a" framework="true"/>
    

    编写.h文件,声明一个接口

    #import <Cordova/CDV.h>
    
    @interface TscPlugin : CDVPlugin
    - (void) Print:(CDVInvokedUrlCommand *)command;
    @end
    
    

    编写.m文件

    #import <Foundation/Foundation.h>
    #include "TscPlugin.h"
    #include "TSCSDK.h"
    
    @implementation TscPlugin
    
    - (void) Print:(CDVInvokedUrlCommand *)command
    {
         NSString* a = [command.arguments objectAtIndex:0];
         NSString* b = [command.arguments objectAtIndex:1];
         NSString* c = [command.arguments objectAtIndex:2];
         NSString* d = [command.arguments objectAtIndex:3];
         NSString* e = [command.arguments objectAtIndex:4];
         NSString* f = [command.arguments objectAtIndex:5];
         NSString* g = [command.arguments objectAtIndex:6];
         NSString* h = [command.arguments objectAtIndex:7];
         NSString* i = [command.arguments objectAtIndex:8];
         NSString* j = [command.arguments objectAtIndex:9];
         NSString* k = [command.arguments objectAtIndex:10];
         NSString* l = [command.arguments objectAtIndex:11];
         NSString* m = [command.arguments objectAtIndex:12];
         NSString* n = [command.arguments objectAtIndex:13];
         NSString* o = [command.arguments objectAtIndex:14];
         NSString* p = [command.arguments objectAtIndex:15];
         NSString* q = [command.arguments objectAtIndex:16];
         NSString* r = [command.arguments objectAtIndex:17];
         NSString* s = [command.arguments objectAtIndex:18];
         NSString* t = [command.arguments objectAtIndex:19];
         NSString* u = [command.arguments objectAtIndex:20];
         NSString* v = [command.arguments objectAtIndex:21];
         NSString* w = [command.arguments objectAtIndex:22];
         NSString* x = [command.arguments objectAtIndex:23];
         NSString* y = [command.arguments objectAtIndex:24];
    
    
             TSCSDK *lib = [TSCSDK new];
             [lib openportMFI:@"com.issc.datapath"];
    
             [lib setup:@"60" height:@"100" speed:@"5" density:@"12" sensor:@"0" vertical:@"2" offset:@"0"];
    
             [lib clearBuffer];
            [lib printerfont_GB2321:a y:b fontName:@"FONT001" rotation:@"270" magnificationRateX:@"2" magnificationRateY:@"2" content:c];
        [lib printerfont_GB2321:d y:e fontName:@"FONT001" rotation:@"270" magnificationRateX:@"2" magnificationRateY:@"2" content:f];
         [lib printerfont_GB2321:g y:h fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:i];
         [lib printerfont_GB2321:j y:k fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:l];
             [lib printerfont_GB2321:m y:n fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:o];
             [lib printerfont_GB2321:p y:q fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:r];
             [lib printerfont_GB2321:s y:t fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:u];
          [lib printerfont_GB2321:v y:w fontName:@"FONT001" rotation:@"270" magnificationRateX:@"1" magnificationRateY:@"1" content:x];
    
            [lib sendCommand:y];
            [lib sendCommand:@"\r\n"];
            [lib printlabel:@"1" copies:@"1"];
            [lib closeport:4.0];
    
    }
    @end
    

    我是将所有的参数全部一次押进一个方法中来,具体细化有兴趣的可以自己改造;打印中文字体的方法使用printerfont_GB2321。

    编写www js文件

    var exec = require('cordova/exec');
    
    exports.Print = function (arg0, success, error) {
        exec(success, error, 'TscPlugin', 'Print', arg0);
    };
    
    

    ts中进行调用

    1.先声明declare let cordova: any;
    2.进行调用打印方法

      cordova.plugins.TscPlugin.Print([
          40,500,itemName1,
          100,500,itemName2,
          160,500,"物料代码:"+itemId,
          200,500,"库位代码:"+stockLocation,
          240,500,"料架号:"+applienArea,
          330,710,typeSpec1,
          360,710,typeSpec2,
          390,710,typeSpec3,
          "QRCODE 50,540,L,10,M,0,M2,S3,\""+"A"+itemId+"789XYZ"+itemId+"\" "],success=>{
    
        },err=>{
    
        })
    
    

    进行打包,配置XCODE

    在info中加入两个配置,缺一不可:
    在这里插入图片描述
    以上步骤都完成后进行真机安装,页面布局还需自己根据纸张情况进行调整,至此IOS蓝牙打印功能就可以使用了,如有问题或更好的想法欢迎加微信交流 zt924099861

    展开全文
  • 我正在尝试使用打印机TSC TTP-342E Pro工业热敏打印机打印标签。 但无法打印。 我使用相同的程序在激光打印机HP LaserJet M1530中进行打印,并且工作正常。 在这两种情况下,打印都是从pdf开始的。 该程序正在与...

    我正在尝试使用打印机TSC TTP-342E Pro工业热敏打印机打印标签。 但无法打印。 我使用相同的程序在激光打印机HP LaserJet M1530中进行打印,并且工作正常。 在这两种情况下,打印都是从pdf开始的。 该程序正在与打印机通信,但未打印任何内容。 我使用过pdfbox,是否应该使用bartenter之类的工具?

    在下面的程序中,程序将从某个位置读取pdf并与打印机通信以生成打印输出。

    public static PrintService choosePrinter(String printerName) {

    PrintService[] services = PrinterJob.lookupPrintServices(); // list of printers

    PrintService printService = null;

    for(PrintService service : services) {

    String availablePrinterName = service.getName();

    System.out.println(availablePrinterName);

    if(service.getName().contains(printerName)) {

    printService = service;

    break;

    }

    }

    return printService;

    }

    public static void main(String[] args) {

    try {

    LOGGER.info("===== PRINT JOB 2 STARTED =======");

    Properties prop = getProperty();

    String printerName = prop.getProperty("printername");

    //String fileLocation = prop.getProperty("filelocation");

    String printStatus = prop.getProperty("enableprint");

    Double height = Double.valueOf(prop.getProperty("height"));

    Double width = Double.valueOf(prop.getProperty("width"));

    Boolean enablePrintPageSetup = Boolean.valueOf(prop.getProperty("enablePrintPageSetup"));

    PDDocument pdf = PDDocument.load(new File(location));

    PrinterJob job = PrinterJob.getPrinterJob();

    Paper paper = new Paper();

    paper.setSize((width*72), (height*72)); // 1/72 inch

    paper.setImageableArea(0, 0, paper.getWidth(), paper.getHeight());

    PageFormat pageFormat = new PageFormat();

    if(enablePrintPageSetup) {

    pageFormat.setPaper(paper);

    }

    pageFormat.setOrientation(PageFormat.PORTRAIT);

    Book book = new Book();

    PDFPrintable pdfPrintable = new PDFPrintable(pdf, Scaling.SHRINK_TO_FIT);

    book.append(pdfPrintable, pageFormat, pdf.getNumberOfPages());

    job.setPageable(book);

    PrintService printService = choosePrinter(printerName);

    if(printService != null) {

    if(Boolean.parseBoolean(printStatus)) {

    LOGGER.info("Print enabled ");

    job.setPrintService(printService);

    job.print();

    } else {

    LOGGER.info("Print disbaled ");

    }

    } else {

    System.out.println("No PDF printer available.");

    LOGGER.info("===== No PDF printer available. =======");

    }

    System.out.println("===== PRINT JOB 2 STOPPED =======");

    LOGGER.info("===== PRINT JOB 2 STOPPED =======");

    } catch (Exception e) {

    // TODO Auto-generated catch block

    LOGGER.error("Error : ", e);

    e.printStackTrace();

    }

    }

    private static Properties getProperty() {

    Properties prop = new Properties();

    try {

    File jarPath=new File(App_1.class.getProtectionDomain().getCodeSource().getLocation().getPath());

    String propertiesPath=jarPath.getParentFile().getAbsolutePath();

    System.out.println(" propertiesPath-"+propertiesPath);

    prop.load(new FileInputStream(propertiesPath+"/config.properties"));

    location = propertiesPath + "/printpdf.pdf";

    } catch (Exception e) {

    e.printStackTrace();

    LOGGER.error("Error : ", e);

    }

    return prop;

    }

    展开全文
  • 这个打印机型号是TSC TTP-243E Plus的标签机,而且这个标签机和电脑连接通过的是并口,对于现在很多打印机来说,这种并口打印机已经很少了,很多人都没有安装过这种并口打印机。先讲解一下,什么是串口,什么是并口...
  • 2、佳博热敏打印机一台(或其他tsc系列打印机) TSCLIB环境配置 1、32位版本的要放置在C盘windows\system32目录下 2、64位则放在C盘windows\system64目录下 代码 下面展示一些 内联代码片。 <!-- 佳博打印机第三...
  • 现在有很多商场和奶茶店等...标签打印机应用和领域:标签打印机分为:热敏打印机和热转印两个类型,可打印标签、商品价签、条型码、等模式。随着科技的发展,标签打印机打印出的产品让广泛应用。例如:在主要公交车...
  • 使用条码打印软件制作的条形码,用热敏打印机打印出来,条形码有点模糊且无法扫描,这个该怎么解决?如果遇到这个问题,可以参考以下解决方案:条形码模糊的话,我们可以点击开始-设备和打印机,找到所需的打印机,...
  • TSC TA200标签打印机驱动是该型号热敏标签机电子面单打印机的驱动程序,支持Vista, Windows2003, XP, and Windows 2000等操作系统,购买了该产品的用户建议下载驱动。功能特色TSC条码打印机TA210是TSC累计多年在各式...
  • Android打印机--TSC 标签打印

    万次阅读 热门讨论 2017-05-15 12:15:51
    按照打印纸张大小分为带切刀的80厨房打印机和58热敏票据打印机;按照打印结果分为小票打印机和标签打印机;关于小票打印,一般都是使用ESC打印指令,可以参见Android打印机–小票打印格式及模板设置,本篇主要介绍...
  • TSCTTP-344C打印机驱动是一款专门为用户提供的驱动程序,主要为用户提供便捷的打印机无法被...软件介绍TSCTTP-344C是一款热敏式的票据打印机,拥有性能稳定、打印速度快的特点,小编提供的TSCTTP-344C打,欢迎下载体验
  • 01、 产品简介M110智能标签打印机采取热敏无墨打印技术,无需碳带,便捷经济,配套“标签大师”专属软件,可打印20-50mm不同尺寸标签,广泛应用于商用和家用领域。02、 产品优势和传统打印的笨重繁琐不同,M110只需1...
  • 热敏打印机指令,标签斑马指令,TSC指令,CPCL指令集
  • 问题:新买的斑马打印机TSC244,打印标签,一张标签上有两个条码,一个横向,一个纵向,为什么纵向的打出来用条码扫描器不能扫描?解答:TSC244条码打印机横向和纵向打印条形码,识读率是不同的,打印出来的条形码...
  • 佳博热敏打印机tsc系列打印机,通过Java调用TSCLIB.DLL动态库资源,windows32/64位下载!!!
  • TSC TTP-342E PRO打印机驱动程序是一款可以有效解决TSC TTP-342E PRO打印机在使用过程中出现的一些问题的驱动工具,本站提供了TSC TTP-342E PRO驱动下载地址,有需要的朋友们可以前来下载使用。 TSC TTP-342E Pro是...
  • TSC 244 (USB接口) 标签打印机外观精巧,性能卓越,是理想的办公条码标签打印设备,可容纳最大直径为127mm的纸卷。适用于即时标签打印/产品标签批量打印/运输、物流标签打印/固定资产管理、仓库管理、医疗器械...
  • 一般人们所熟知的打印机通常是针打、喷墨或激光打印,但在我们周边环境中,几乎所有的几乎所有的商品使用到的都是采用热转印或热敏技术的不干胶条码打印机打印标签条码。比如,打开手机壳内部即可看到密密麻麻带有...
  • 一般人们所熟知的打印机通常是针打、喷墨或激光打印,但在我们周边环境中,几乎所有的几乎所有的商品使用到的都是采用热转印或热敏技术的不干胶条码打印机打印标签条码。比如,打开手机壳内部即可看到密密麻麻带有...
  • 作为全球领先的标识标记解决方案供应商,Brother在中国大陆发布了两款4英寸桌面型热敏·热转印标签打印机TD-4420TN/4520TN,最大打印宽幅升级至110mm。Brother TD-4420TN/4520TN在打印原理和打印接口上都有了质的飞跃,...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

tsc热敏打印机