嗨这里是一个如何使用来自cordova应用程序的zebra进行打印的示例

package com.custom.plugin;

import android.os.Build;

import org.apache.cordova.CordovaPlugin;

import org.apache.cordova.CallbackContext;

import org.apache.cordova.CordovaInterface;

import org.apache.cordova.CordovaWebView;

import org.apache.cordova.PluginResult;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import android.app.Activity;

import android.content.pm.ApplicationInfo;

import android.content.pm.PackageInfo;

import android.content.pm.PackageManager;

import android.content.Context;

import android.support.v4.app.ActivityCompat;

import android.os.Bundle;

import android.bluetooth.BluetoothAdapter;

import android.bluetooth.BluetoothClass;

import android.bluetooth.BluetoothDevice;

import java.util.Set;

import com.zebra.android.discovery.*;

import com.zebra.sdk.comm.*;

import com.zebra.sdk.printer.*;

import com.zebra.sdk.printer.SGD;

/**

* This class echoes a string called from JavaScript.

*/

public class PrinterDanBreakingNews extends CordovaPlugin {

@Override

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {

if (action.equals("getListPairedDevices")) {

this.getListPairedDevices(callbackContext);

return true;

}else if(action.equals("print"))

{

this.print(callbackContext,args);

return true;

}

return false;

}

private void getListPairedDevices(CallbackContext callbackContext)

{

try

{

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

if( !bluetoothAdapter.isEnabled() )

{

callbackContext.error("Favor encienda el bluetooth");

}

Set pairedDevices = bluetoothAdapter.getBondedDevices();

if (pairedDevices.size() > 0) {

JSONArray lista = new JSONArray();

for (BluetoothDevice device : pairedDevices) {

String bname = device.getName();

String bmac = device.getAddress();

String btype

= getBTMajorDeviceClass(

device.getBluetoothClass().getMajorDeviceClass()

);

JSONObject item = new JSONObject();

item.put("name", bname);

item.put("type", btype);

item.put("mac", bmac);

lista.put(item);

}

callbackContext.success(lista.toString());

}

callbackContext.error("Error. no hay dispositivos registrados");

}

catch( Exception ex )

{

callbackContext.error("Error. " + ex.toString());

}

}

private String getBTMajorDeviceClass(int major){

switch(major){

case BluetoothClass.Device.Major.AUDIO_VIDEO:

return "AUDIO_VIDEO";

case BluetoothClass.Device.Major.COMPUTER:

return "COMPUTER";

case BluetoothClass.Device.Major.HEALTH:

return "HEALTH";

case BluetoothClass.Device.Major.IMAGING:

return "IMAGING";

case BluetoothClass.Device.Major.MISC:

return "MISC";

case BluetoothClass.Device.Major.NETWORKING:

return "NETWORKING";

case BluetoothClass.Device.Major.PERIPHERAL:

return "PERIPHERAL";

case BluetoothClass.Device.Major.PHONE:

return "PHONE";

case BluetoothClass.Device.Major.TOY:

return "TOY";

case BluetoothClass.Device.Major.UNCATEGORIZED:

return "UNCATEGORIZED";

case BluetoothClass.Device.Major.WEARABLE:

return "WEARABLE";

default: return "unknown!";

}

}

public void print(final CallbackContext callbackContext, final JSONArray args){

try

{

new Thread(new Runnable() {

@Override

public void run() {

try {

String mac = "";

String template = "";

String length = "";

if( args.length() > 0 ) {

JSONArray row = args.getJSONArray(0);

JSONObject item = row.getJSONObject(0);

mac = item.getString("mac");

template = item.getString("template");

length = item.getString("length");

}

Connection thePrinterConn = new BluetoothConnectionInsecure(mac);

if (isPrinterReady(thePrinterConn)) {

thePrinterConn.open();

SGD.SET("device.languages", "zpl", thePrinterConn);

SGD.SET("ezpl.media_type", "continuous", thePrinterConn);

SGD.SET("zpl.label_length", length, thePrinterConn);

thePrinterConn.write(template.getBytes());

Thread.sleep(500);

thePrinterConn.close();

callbackContext.success("listo");

} else {

callbackContext.error("Error3, la impresora no esta lista");

}

} catch (Exception ex) {

callbackContext.error("Error2. " + ex.toString());

}

}

}).start();

}

catch(Exception ex)

{

callbackContext.error("Error1. " + ex.toString());

}

}

private Boolean isPrinterReady(Connection connection)

throws Exception {

Boolean isOK = false;

connection.open();

ZebraPrinter printer = ZebraPrinterFactory.getInstance(connection);

PrinterStatus printerStatus = printer.getCurrentStatus();

if (printerStatus.isReadyToPrint) {

isOK = true;

} else if (printerStatus.isPaused) {

//throw new ConnectionException("Cannot print because the printer is paused");

} else if (printerStatus.isHeadOpen) {

//throw new ConnectionException("Cannot print because the printer media door is open");

} else if (printerStatus.isPaperOut) {

//throw new ConnectionException("Cannot print because the paper is out");

} else {

//throw new ConnectionException("Cannot print");

}

//connection.open();

return isOK;

}

}

在函数getListPairedDevices中,您可以获取要使用的mac地址列表,然后使用函数print发送您的ZLP代码 .

这是一些ZPL测试 .

CT~~CD,~CC^~CT~

^XA~TA000~JSN^LT0^MNW^MTD^PON^PMN^LH0,0^JMA^PR4,4~SD0^JUS^LRN^CI0^XZ

^XA

^MMT

^PW575

^LL0799

^LS0

^FT35,720^A0N,20,19^FH\^FDHORA^FS

^FT35,680^A0N,20,19^FH\^FDFECHA^FS

^FT34,644^A0N,20,19^FH\^FDCOURRIER^FS

^FT34,609^A0N,20,19^FH\^FDADR2^FS

^FT34,572^A0N,20,19^FH\^FDADR1^FS

^FT34,533^A0N,20,19^FH\^FDSUCURSAL^FS

^FT34,498^A0N,20,19^FH\^FDDESTINATARIO^FS

^FT34,461^A0N,20,19^FH\^FDREMITENTE^FS

^FT165,720^A0N,20,19^FH\^FD: VHORA^FS

^FT165,680^A0N,20,19^FH\^FD: VFECHA^FS

^FT165,644^A0N,20,19^FH\^FD: VCOURRIER^FS

^FT166,534^A0N,20,19^FH\^FD: VSUCURSAL^FS

^FT166,426^A0N,20,19^FH\^FD: VEMPAQUE^FS

^FT166,461^A0N,20,19^FH\^FD: VREMITENTE^FS

^FT166,497^A0N,20,19^FH\^FD: VDESTINATARIO^FS

^FT34,425^A0N,20,19^FH\^FDEMPAQUE^FS

^FT136,365^A0N,23,24^FH\^FD1138 CHO-CHO-1-1-1-1^FS

^FT185,325^A0N,23,24^FH\^FDGUIA: 11389942705^FS

^FT165,46^A0N,28,28^FH\^FDDIRECTO LOGISTICS^FS

^FT25,214^A0N,138,139^FH\^FD1/2^FS

^FT380,265^BQN,2,8

^FH\^FDLA,101010^FS

^FO20,281^GB536,0,3^FS

^PQ1,0,1,Y^XZ

java 蓝牙打印_Android - 将收据打印到蓝牙打印机相关推荐

  1. 打印html时字号不对,打印HTML时收据打印机上的字体大小

    我们有两台Epson TMU 220(USB)打印机,并尝试从两个不同的客户端进行打印.一个是Ubuntu客户端,另一个是Windows客户端.使用PHP,在Ubuntu中我将纯文本回显到/ dev ...

  2. android java 调用栈_Android开发中打印方法调用栈

    概要 在日常开发和debug的过程中,我们都需要看看某一个方法的调用StackTrace,如果是crash或者异常被抛出的情况下会直接看到对应的StackTrace,如: 39 5939 E Andr ...

  3. java 蓝牙打印_Android蓝牙打印机,带你真正了解各种打印格式

    注意:本文原创,转载请注明出处.欢迎关注我的 简书 . 本文主要讲解蓝牙打印机在打印小票的过程中,如何打印各种常见格式.由于之前需要调试打印格式,但是苦于网上没有详细的讲解教程,无奈只能自给自足,自己 ...

  4. java pdf预览打印_Android实现PDF预览打印功能

    最近在做一个项目,需要用到android手机连接打印机进行打印的功能,目前在网上找到的教程介绍的都是蓝牙连接热敏打印机(pos机大小的打印机)和蓝牙打印机,如果连接日常所见到的网络打印机,进行打印,很 ...

  5. Android 蓝牙打印小票与WiFi打印小票两种打印方式的实现(带有图片和二维码)

    转载至: https://blog.csdn.net/u011056653/article/details/74308254 最近在做小票打印这块,项目需求是蓝牙和WiFi两种都要实现,开始做的时候也 ...

  6. Android 蓝牙连接 ESC/POS 热敏打印机打印(ESC/POS指令篇)

    上一篇 主要介绍了如何通过蓝牙连接到打印机.这一篇,我们就介绍如何向打印机发送打印指令,来打印字符和图片. =====================2017.05.09 更新============ ...

  7. java lodop打印_Java的云打印Lodop

    Lodop是一款专业的WEB打印控件,其设计目标是简单易用.功能足够强大,开创WEB打印开发的新局面. Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实 ...

  8. uniapp app蓝牙打印_编程器加装蓝牙串口模块与手机APP操作演示

    编程器加装蓝牙模块后,可以方便的使用手机查看打印信息,进入控制台执行各种串口命令.本款蓝牙串口APP具有保存打印信息.分享打印信息.设置字体大小.清除屏幕信息.进入控制台.发送串口命令.执行串口命令- ...

  9. java调adobe打印_Java报表工具打印方案集锦 | 改变自己

    本文试图对市面上流行的纯java实现的web报表工具,jasperreport . stylereport .杰表.润乾报表.快逸.finererport为例,分析各报表工具采用的web打印技术的异同 ...

最新文章

  1. 可微偏导数一定存在_数学分析复习——偏导数(1)
  2. Linux基础命令使用
  3. 内存管理模拟程序c语言,C语言 内存管理详解
  4. 错误信息:Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务
  5. 聚簇索引、非聚簇索引、普通索引、唯一索引
  6. 零XML的Spring配置
  7. ci 数据库异常捕获_系统地捕获错误:如何通过4个步骤构建GitLab CI测试管道
  8. 令人激动!谷歌推强化学习新框架「多巴胺」,基于TensorFlow,已开源丨附github...
  9. 部分pcie网卡睡眠之后不能识别的问题
  10. 软件项目管理测试文档,软件项目管理具体方法体系示例
  11. 前端开发人员必备的十项技能
  12. WIN10的桌面和虚拟桌面的切换快捷键太方便了
  13. 七日杀服务器怎么修改天数,七日杀如何调整天数 | 手游网游页游攻略大全
  14. 1004.选择结构习题:奇偶数判断
  15. 大数据华而不实么?大数据的本质是什么?
  16. There is no getter for property named ‘distinct‘ in ‘class tk.mybatis.mapper
  17. 高德地图上画图!和3D绘制区域
  18. 此语言无法安装在此计算机,[修复]无法在Windows 10中安装语言包 | MOS86
  19. 往事依稀浑似梦 都随风雨到心头 ——OI回忆录
  20. 不能用来修饰interface的有

热门文章

  1. 云麦体脂秤华为体脂秤_如果是一个真正的体脂秤就好了:华为智能体脂秤
  2. linux下的office 速度慢,针对Libreoffice卡顿奇慢的怪病,这里有一味特效药
  3. PAT_甲级 简单模拟
  4. 全国各地级市、区县房价最全数据(更新至2021年7月)
  5. 刷题之旅第35站,CTF show 萌新题目集合
  6. python 扯线木偶_年轻的50个细节
  7. 油菜花系统服务器能删除内容吗,在这个油菜花盛开的地方,有这样一家数字化的亲民医院...
  8. anti-SG 游戏
  9. Liferay 6.2 改造系列之三:删除Docbar中的添加内容功能
  10. WPS Word二级标题自动编号,本来应该是2.1,可是却变成1.3,怎么办?