手机蓝牙热敏打印机可以连电脑使用蓝牙打印机吗

蓝牙热敏打印机打不出字_打印机吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:70,291贴子:
蓝牙热敏打印机打不出字收藏
蓝牙热敏打印机连接电脑正常但打不出字,而连接手机却能打出字,电脑无毒,怎么回事
要拿打印机打印发票 ,很急啊
端口设置,插件,驱动。
驱动和端口对么
登录百度帐号Android 蓝牙连接 ESC/POS 热敏打印机打印实例(ESC/POS指令篇)
转载 & & 作者:VitaminChen
这篇文章主要介绍了Android 蓝牙连接 ESC/POS 热敏打印机打印实例(ESC/POS指令篇),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
主要介绍了如何通过蓝牙连接到打印机。这一篇,我们就介绍如何向打印机发送打印指令,来打印字符和图片。
1. 构造输出流
首先要明确一点,就是蓝牙连接打印机这种场景下,手机是 Client 端,打印机是 Server 端。
在上一篇的最后,我们从 BluetoothSocket 得到了一个OutputStream。这里我们做一层包装,得到一个OutputStreamWriter 对象:
OutputStreamWriter writer = new OutputStreamWriter(outputStream, "GBK");
这样做主要是为了后面可以直接输出字符串,不然只能输出 int 或 byte 数据;
2. 常用打印指令
手机通过蓝牙向打印机发送的都是纯字节流,那么打印机如何知道该打印的是一个文本,还是条形码,还是图片数据呢?
初始化打印机 :
在每次打印开始之前要调用该指令对打印机进行初始化。向打印机发送这条指令对应的代码就是:
protected void initPrinter() throws IOException {
writer.write(0x1B);
writer.write(0x40);
writer.flush();
打印文本:
没有对应指令,直接输出
protected void printText(String text) throws IOException {
writer.write(text);
writer.flush();
设置文本对齐方式:
对应的发送指令的代码:
/* 设置文本对齐方式
* @param align 打印位置 0:居左(默认) 1:居中 2:居右
* @throws IOException
protected void setAlignPosition(int align) throws IOException {
writer.write(0x1B);
writer.write(0x61);
writer.write(align);
writer.flush();
与初始化指令不同的是,这条指令带有一个参数n。
换行和制表符:
直接输出对应的字符:
protected void nextLine() throws IOException {
writer.write("\n");
writer.flush();
protected void printTab(int length) throws IOException {
for (int i = 0; i & i++) {
writer.write("\t");
writer.flush();
这两个指令在打印订单详情的时候使用最多。尤其是制表符,可以让每一列的文字对齐。
设置行间距:
n表示行间距为n个像素点,最大值256
protected void setLineGap(int gap) throws IOException {
writer.write(0x1B);
writer.write(0x33);
writer.write(gap);
writer.flush();
这个指令在后面打印图片的时候会用到。
3. 打印图片
很多小票上面都会附上一个二维码,用户扫描之后,可以获得更多的信息。因为热敏打印机只能打印黑白两色,所以首先把图片转成纯黑白的,再调用图片打印指令进行打印。
3.1 打印图片指令
这个指令的参数很多,一个一个来说:
m:取值十进制 0、1、32、33。设置打印精度,0、1对应每行8个点,32、33对应每行24个点,对应最高的打印精度(其实这里也没太搞清楚取值0、1或者取值32、33的区别,只要记住取值33,对应每行24个点,后面还有用)
n1, n2 : 表示图片的宽度,为什么有两个?其实只是分成了高位和低位两部分,因为每部分只有8bit,最大表示256。所以 n1 = 图片宽度 % 256,n2 = 图片宽度 / 256。假设图片宽300,那么n1=1,n2=44
d1 d2 ... dk 这部分就是转换成字节流的图像数据了
3.2 图片分辨率调整
如果分辨率过大,超过了打印机可打印的最大宽度,那么超出的部分将无法打印。我试验的这台最大宽度是 384 个像素点,超过这个宽度的数据无法被打印出来。所以在开始打印之前,我们需要调整图片的分辨率。代码如下:
* 对图片进行压缩(去除透明度)
* @param bitmapOrg
public static Bitmap compressPic(Bitmap bitmap) {
// 获取这个图片的宽和高
int width = bitmap.getWidth();
int height = bitmap.getHeight();
// 指定调整后的宽度和高度
int newWidth = 240;
int newHeight = 240;
Bitmap targetBmp = Bitmap.createBitmap(newWidth, newHeight, Bitmap.Config.ARGB_8888);
Canvas targetCanvas = new Canvas(targetBmp);
targetCanvas.drawColor(0xffffffff);
targetCanvas.drawBitmap(bitmap, new Rect(0, 0, width, height), new Rect(0, 0, newWidth, newHeight), null);
return targetB
3.2 图片黑白化处理
因为能够打印的图像只有黑白两色,所以需要先做黑白化的处理。这一部分其实又细分为彩色图片-&灰度图片,灰度图片-&黑白图片两步。直接上代码:
* 灰度图片黑白化,黑色是1,白色是0
* @param x
* @param y
* @param bit 位图
public static byte px2Byte(int x, int y, Bitmap bit) {
if (x & bit.getWidth() && y & bit.getHeight()) {
int pixel = bit.getPixel(x, y);
int red = (pixel & 0x00ff0000) && 16; // 取高两位
int green = (pixel & 0x0000ff00) && 8; // 取中两位
int blue = pixel & 0x000000 // 取低两位
int gray = RGB2Gray(red, green, blue);
if (gray & 128) {
* 图片灰度的转化
private static int RGB2Gray(int r, int g, int b) {
int gray = (int) (0.29900 * r + 0.58700 * g + 0.11400 * b); //灰度转化公式
其中的灰度化转换公式是一个广为流传的公式,具体原理不明。我们直接看灰度转化为黑白的函数 px2Byte(int x, int y, Bitmap bit)。对于一个 Bitmap 中的任意一个坐标点,取出其 RGB 三色信息后做灰度化处理,然后对于灰度小于128的,用黑色表示,灰度大于128的,用白色表示。
3.3 逐行打印图片
其实打印图片和打印文本是一样的,也是一行一行的打印。直接上代码吧,注释已经尽量详细了。
/*************************************************************************
* 假设一个240*240的图片,分辨率设为24, 共分10行打印
* 每一行,是一个 240*24 的点阵, 每一列有24个点,存储在3个byte里面。
* 每个byte存储8个像素点信息。因为只有黑白两色,所以对应为1的位是黑色,对应为0的位是白色
**************************************************************************/
* 把一张Bitmap图片转化为打印机可以打印的字节流
* @param bmp
public static byte[] draw2PxPoint(Bitmap bmp) {
//用来存储转换后的 bitmap 数据。为什么要再加1000,这是为了应对当图片高度无法
//整除24时的情况。比如bitmap 分辨率为 240 * 250,占用 7500 byte,
//但是实际上要存储11行数据,每一行需要 24 * 240 / 8 =720byte 的空间。再加上一些指令存储的开销,
//所以多申请 1000byte 的空间是稳妥的,不然运行时会抛出数组访问越界的异常。
int size = bmp.getWidth() * bmp.getHeight() / 8 + 1000;
byte[] data = new byte[size];
int k = 0;
//设置行距为0的指令
data[k++] = 0x1B;
data[k++] = 0x33;
data[k++] = 0x00;
// 逐行打印
for (int j = 0; j & bmp.getHeight() / 24f; j++) {
//打印图片的指令
data[k++] = 0x1B;
data[k++] = 0x2A;
data[k++] = 33;
data[k++] = (byte) (bmp.getWidth() % 256); //nL
data[k++] = (byte) (bmp.getWidth() / 256); //nH
//对于每一行,逐列打印
for (int i = 0; i & bmp.getWidth(); i++) {
//每一列24个像素点,分为3个字节存储
for (int m = 0; m & 3; m++) {
//每个字节表示8个像素点,0表示白色,1表示黑色
for (int n = 0; n & 8; n++) {
byte b = px2Byte(i, j * 24 + m * 8 + n, bmp);
data[k] += data[k] +
data[k++] = 10;//换行
用两篇介绍了一个比较冷门的应用,纯粹是因为自己花了很多时间去搞懂原理,所以希望记录下来。尤其是图片打印部分,废了好多纸啊哈哈哈,一个字节操作错误,打印出来就是一堆乱码。感觉和 java 的 .class 文件很像,每一个指令占用多少位,每一位表示什么都是严格规定好的,不能超出也不能缺少。
最后希望能帮到需要的人吧,感觉网上这部分资料还是比较少的。也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具1机多联台式蓝牙热敏打印机方案_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
1机多联台式蓝牙热敏打印机方案
&&1机多联58mm台式蓝牙热敏打印机方案
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩6页未读,
定制HR最喜欢的简历
你可能喜欢安卓手机app通过蓝牙连接热敏打印机用sdk打印小票;--任务易推荐给您
¥3000.00元
安卓手机app通过蓝牙连接热敏打印机用sdk打印小票;
任务易所有内容均为威客和外包行业网站提供或收集于互联网公开的信息,目的是给在网络上工作的威客和兼职人员收集更多的免费工作信息,以帮助更多的人自主就业。如果有内容触及您的权益,请给我们发邮件()并附上具体网址和说明,核实后我们将立即删除!对免责声明的解释、修改及更新权均属于任务易所有。
你觉得这个任务肿么样?
评分:3.5分
猪八戒网是全国最大的在线服务交易平台,由原《重庆晚报》首席记者朱明跃创办于2006年,服务交易品类涵盖创意设计、软件开发、网站建设、网络营销、文案策划、生活服务等多种行业。2011年猪八戒网获得IDG千万级美金投资,并被评选为中国2011年度“最佳商业模式十强”企业。2012年猪八戒还获得了国家文化产业示范基地称号。
你可能也对这些任务感兴趣
日内的任务58mm蓝牙热敏打印机 安卓打印 手机打印 小票打印 票据打印
&信息编号:3269012
供应商: 企业认证 报价:请来电询价品牌5803型号5803-se接口其他所在地深圳市宝安区民治街道民治大道牛栏前大厦12楼A1210(办公场所)联系电话
总经理陈志龙手机号 访问统计92次
产品详细介绍本产品有可能不兼容所有打印程序,自拍的客户请注意,若不能使用,一星期内可退货,但退货需自付来回快递费,影响二次销量需付物损费(即包装和外壳),若不能接受此条款,请慎拍或联系卖家。兼容市面常用软件,商家版的,有些要付费, 具体如下:饿了么外卖、美团外卖、 淘点点外卖、百度外卖、票证通、3g华慧、 智慧商贸、来钱快、 友商、 生意小管家、&管家婆、车销、乐刷pos 等。蓝牙+usb(安卓版本)体积最小的蓝牙打印机:1.手掌大小、小巧轻便,方便随身携带。2.蓝牙/usb/串口三种通讯方式随意选择,方便连接。3.内置大容量可充锂电池,一次充电后使用更长久。4.支持48*48字体,功能更强大。5.无需墨盒和色带,打印成本低。6.支持二维码、图片打印。7.可运用于物流、交警、邮政、城管、烟草、抄表、超市、服装等各种行业及领域。产品参数:本产品的品牌是5803,型号是5803-se,接口是其他,打印介质是其他,打印幅面是其他
如果[58mm蓝牙热敏打印机 安卓打印 手机打印 小票打印 票据打印 ]描述不够全,请联系我司获取详细资料,请说明是从顺企网看到的,会有更多优惠
相关链接:
& 本页链接:http://product.11467.com/info/3269012.htm
58mm蓝牙热敏打印机 安卓打印 手机打印 小票打印 票据打印的文档下载:
关于深圳市禾智科技有限公司 |
| 主要经营:便携3G无线路由器; 3G无线路由器; 4G无线路由器; 3G WiFi 移动电源; 随身WIFI
深圳市禾智科技有限公司创立于2005年10月,公司始终致力于无线通信领域,系集研发、生产、销售和服务为一体的高科技产业公司。
目前公司主营产品为:3G ...
相关产品分类其他城市的热敏打印机
免责声明:本站信息由企业自行发布,本站完全免费,交易请核实资质,谨防诈骗 &&&&
& 11467.com 顺企网版权所有
发布批发采购信息、查询企业黄页,上顺企网

我要回帖

更多关于 热敏打印机连接电脑 的文章

 

随机推荐