java 蓝牙打印_Android - 将收据打印到蓝牙打印机
嗨这里是一个如何使用来自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 - 将收据打印到蓝牙打印机相关推荐
- 打印html时字号不对,打印HTML时收据打印机上的字体大小
我们有两台Epson TMU 220(USB)打印机,并尝试从两个不同的客户端进行打印.一个是Ubuntu客户端,另一个是Windows客户端.使用PHP,在Ubuntu中我将纯文本回显到/ dev ...
- android java 调用栈_Android开发中打印方法调用栈
概要 在日常开发和debug的过程中,我们都需要看看某一个方法的调用StackTrace,如果是crash或者异常被抛出的情况下会直接看到对应的StackTrace,如: 39 5939 E Andr ...
- java 蓝牙打印_Android蓝牙打印机,带你真正了解各种打印格式
注意:本文原创,转载请注明出处.欢迎关注我的 简书 . 本文主要讲解蓝牙打印机在打印小票的过程中,如何打印各种常见格式.由于之前需要调试打印格式,但是苦于网上没有详细的讲解教程,无奈只能自给自足,自己 ...
- java pdf预览打印_Android实现PDF预览打印功能
最近在做一个项目,需要用到android手机连接打印机进行打印的功能,目前在网上找到的教程介绍的都是蓝牙连接热敏打印机(pos机大小的打印机)和蓝牙打印机,如果连接日常所见到的网络打印机,进行打印,很 ...
- Android 蓝牙打印小票与WiFi打印小票两种打印方式的实现(带有图片和二维码)
转载至: https://blog.csdn.net/u011056653/article/details/74308254 最近在做小票打印这块,项目需求是蓝牙和WiFi两种都要实现,开始做的时候也 ...
- Android 蓝牙连接 ESC/POS 热敏打印机打印(ESC/POS指令篇)
上一篇 主要介绍了如何通过蓝牙连接到打印机.这一篇,我们就介绍如何向打印机发送打印指令,来打印字符和图片. =====================2017.05.09 更新============ ...
- java lodop打印_Java的云打印Lodop
Lodop是一款专业的WEB打印控件,其设计目标是简单易用.功能足够强大,开创WEB打印开发的新局面. Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实 ...
- uniapp app蓝牙打印_编程器加装蓝牙串口模块与手机APP操作演示
编程器加装蓝牙模块后,可以方便的使用手机查看打印信息,进入控制台执行各种串口命令.本款蓝牙串口APP具有保存打印信息.分享打印信息.设置字体大小.清除屏幕信息.进入控制台.发送串口命令.执行串口命令- ...
- java调adobe打印_Java报表工具打印方案集锦 | 改变自己
本文试图对市面上流行的纯java实现的web报表工具,jasperreport . stylereport .杰表.润乾报表.快逸.finererport为例,分析各报表工具采用的web打印技术的异同 ...
最新文章
- 可微偏导数一定存在_数学分析复习——偏导数(1)
- Linux基础命令使用
- 内存管理模拟程序c语言,C语言 内存管理详解
- 错误信息:Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务
- 聚簇索引、非聚簇索引、普通索引、唯一索引
- 零XML的Spring配置
- ci 数据库异常捕获_系统地捕获错误:如何通过4个步骤构建GitLab CI测试管道
- 令人激动!谷歌推强化学习新框架「多巴胺」,基于TensorFlow,已开源丨附github...
- 部分pcie网卡睡眠之后不能识别的问题
- 软件项目管理测试文档,软件项目管理具体方法体系示例
- 前端开发人员必备的十项技能
- WIN10的桌面和虚拟桌面的切换快捷键太方便了
- 七日杀服务器怎么修改天数,七日杀如何调整天数 | 手游网游页游攻略大全
- 1004.选择结构习题:奇偶数判断
- 大数据华而不实么?大数据的本质是什么?
- There is no getter for property named ‘distinct‘ in ‘class tk.mybatis.mapper
- 高德地图上画图!和3D绘制区域
- 此语言无法安装在此计算机,[修复]无法在Windows 10中安装语言包 | MOS86
- 往事依稀浑似梦 都随风雨到心头 ——OI回忆录
- 不能用来修饰interface的有
热门文章
- 云麦体脂秤华为体脂秤_如果是一个真正的体脂秤就好了:华为智能体脂秤
- linux下的office 速度慢,针对Libreoffice卡顿奇慢的怪病,这里有一味特效药
- PAT_甲级 简单模拟
- 全国各地级市、区县房价最全数据(更新至2021年7月)
- 刷题之旅第35站,CTF show 萌新题目集合
- python 扯线木偶_年轻的50个细节
- 油菜花系统服务器能删除内容吗,在这个油菜花盛开的地方,有这样一家数字化的亲民医院...
- anti-SG 游戏
- Liferay 6.2 改造系列之三:删除Docbar中的添加内容功能
- WPS Word二级标题自动编号,本来应该是2.1,可是却变成1.3,怎么办?