【发布时间】:2017-01-29 18:23:46
【问题描述】:
我有一台 Datecs DPP-450 ESC POS 热敏打印机,它带有一个 API。
我可以通过蓝牙成功打印,因为 API 提供了用于连接、打印文本和边框的简单代码,但我无法将页面高度设置为大于 2000+(我认为是点)。我正在打印发票,我需要大于 2000 的高度。我在互联网上搜索并发现:
ESC W xL xH yL yH dxL dxH dyL dyH。
在页面模式下设置打印区域
[范围] 0≤ xL xH yL yH dxL dxH dyL dyH ≤255(dxL=dxH=0 或 dyL=dyH=0 除外)
【说明】水平起始位置、垂直起始位置、打印区域宽度和打印区域高度分别定义为x0、y0、dx、dy。 可打印区域的每个设置计算如下:
x0 = [(xL + xH x 256) x (水平运动单位)]
y0 = [(yL + yH x 256) x (垂直运动单位)]
dx = [(dxL + dxH x 256) x (水平运动单位)]
dy = [(dyL + dyH x 256) x (垂直运动单位)]
,但无法使其工作。
代码不多,我试过了:
printer.reset();
printer.write(new byte[]{0x1B});
printer.write(new byte[]{0x57});
printer.write(new byte[]{0}); OR new byte[]{0x30}
printer.write(new byte[]{0}); OR new byte[]{0x30}
printer.write(new byte[]{0}); OR new byte[]{0x30}
printer.write(new byte[]{0}); OR new byte[]{0x30}
printer.write(new byte[]{64}); OR new byte[]{0x36, 0x34}
printer.write(new byte[]{3}); OR new byte[]{0x33}
printer.write(new byte[]{96}); OR new byte[]{0x39, 0x36}
printer.write(new byte[]{11}); OR new byte[]{0x31, 0x31}
printer.selectPageMode(); // make printer enter PAGE MODE
关于获得 5000 左右高度的正确方法有什么想法吗?作为一种解决方法,我可以逐个打印,但我确信有更好的方法。
【问题讨论】:
-
您使用什么编程语言?什么是printer.write(new byte[]{0});或者 new byte[]{0x30} 是什么意思?它是否向打印机发送 0x00 或 0x30?请更准确....
标签: android printing thermal-printer escpos