找回密码
 立即注册

QQ登录

只需一步,快速开始

willning
超级版主   /  发表于:2023-1-11 17:46  /   查看:5113  /  回复:0
本帖最后由 willning 于 2024-3-18 17:48 编辑

想要通过蓝牙打印机来打印标签?没问题。


活字格安卓容器(HAC)的1.7.0版本和Android PDA交互插件1.6.0.0版中增加了调用蓝牙打印机的能力,首批支持的是DothanTech的方案(DP30等德佟打印设备或使用了德佟打印模块的一体机等),上面的视频中就用到了Dp30打印机。

首先我们需要认识到,标签打印机和传统的喷墨或激光打印机的交互方式一样的,都可以分为连接打印机、绘制打印文档、发送到打印机三步。落地到活字格上,您需要这么做:

Step 1:连接到蓝牙打印机
连接时有两种方案:
A 简单方案
通过【管理打印机设备】命令中的【OpenPrinter】操作,不指定打印机名称。此时,活字格会连接手机或PDA上默认的蓝牙打印机,如果之前有使用过某台打印机,默认打印机就是刚才使用的那台,如果没用过,默认打印机通常是最近匹配的那台。


image.png185443419.png

B 标准方案
通过【管理打印机设备】命令中的【GetAllPrinters】操作,获取手机中已经匹配的蓝牙打印机名称列表;使用【操作单元格命令】配合【数据操作命令】、【对象操作命令】,将这些名称加载到下拉框的候选列表;将用户选择的名称作为参数,调用【管理打印机设备】命令中的【OpenPrinter】操作,连接到这台打印机。
image.png908667907.png

注意:需要提醒的是,如果蓝牙打印机没有开机、不在手机附近或处在休眠状态,OpenPrinter操作虽然会自动尝试唤醒打印机,但当次调用依然会返回“false”。建议您对这个操作的返回值进行判断,如果为false则提示用户等待打印机唤醒后重试。
image.png984047851.png

Step 2:创建打印任务
通过【管理蓝牙打印任务】命令中的【StartJob】操作,传入打印机中安装的标签纸的尺寸,创建打印任务。创建打印任务后,活字格会自动在内存中创建一个用于绘制打印内容的文档,在调用【绘制蓝牙打印内容/图形】命令前,您需要先调用StartJob。
image.png880086974.png

Step 3:绘制内容和图形
在调用StartJob操作后,通过【绘制蓝牙打印的内容】在打印文档中绘制文字内容,这些文字内容除了能以文字形式绘制外,还支持条形码和二维码;也可以通过【绘制蓝牙打印的图形】在打印文档中绘制矢量图形。

注意:调用两个绘制命令时,活字格不会将打印内容发送到打印机,自然不会有打印动作发生。您还需要通过Step 4来完成打印。

3.1 【绘制蓝牙打印的内容】Text操作:直接输出文字
直接输出文字时,会使用系统的默认字体。支持设置文字高度、字体风格、对齐方式和旋转角度。其中对齐方式将决定文字区域摆放到X,Y坐标的哪个方位。您可以配合StartJob操作中的宽度和高度,实现多种对齐效果。
image.png896975707.png

3.2  【绘制蓝牙打印的内容】Barcode:根据文字内容生成并输出条码
Barcode的文本仅支持数字类型,但支持的条码类型比较丰富,可根据实际场景进行选择。如果不需要打印供人工阅读的数字,可以将“文字的高度”设置为0。
image.png95501097.png

3.3 【绘制蓝牙打印的内容】QRCode:根据文字内容生成并输出二维码
QRCode是正方形的,所以宽度即为长度。
image.png568929442.png

3.4 【绘制蓝牙打印的图形】DrawLine:划直线、划斜线
直线也是有宽度的,这一点和矩形一致。在计算尺寸和位置时,X、Y位于左上角,相当于TopLeft的对齐方式。
image.png828182067.png

3.5 【绘制蓝牙打印的图形】DrawRectangle和FillRectangle:画矩形、填充矩形
X、Y位于左上角。
image.png206018065.png

3.6 【绘制蓝牙打印的图形】DrawRoundRectangle和FillRoundRectangle:画圆角矩形、填充圆角矩形
X、Y位于左上角。活字格在打印圆角矩形时,需要使用相同的圆角高度和圆角宽度,所以,您只需设置“圆角宽度”。
image.png18247984.png

3.7 【绘制蓝牙打印的图形】DrawEllipse和FillEllipse:画椭圆形、填充椭圆形
X、Y位于左上角。当宽度和高度设置成一样的值时,您就得到了一个圆形。
image.png876612548.png

Step 4:提交打印任务
通过【管理蓝牙打印任务】命令中的【CommitJob】操作,将之前绘制的包含有所有内容和图形的文档发送到打印机,开始打印。
如果打印机缺纸或发生其他错误,会导致返回值为false。您可以通过对这个返回值进行判断,实现错误提示功能。
image.png293664244.png

提示:打印任务提交成功后,打印机仍需要一定时间来处理,此时如果再开启新的任务,打印机将无法处理。所以,如果您需要通过循环命令连续打印多张,请在调用【CommitJob】后,使用【等待命令】延时几秒(不同打印机所需的时间不同,可多次尝试确定)。

==========================
本方案针对德佟和德佟OEM打印机定制,需要ESC协议的通用型蓝牙打印方案的话,点击这里

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部