首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向蓝牙打印机发送PCL命令

向蓝牙打印机发送PCL命令
EN

Stack Overflow用户
提问于 2014-06-25 12:13:36
回答 2查看 1.8K关注 0票数 2

我制作了安卓应用程序,它将向BT打印机(HP Officejet 100)发送PCL命令。问题是当我发送字符串数据(PCL命令)时,打印机无法识别这些命令,并像普通字符串一样打印所有这些命令。知道打印机为什么不识别命令吗?我在这里的完整代码:代码

我也尝试将字符集更改为US-ASCII,UTF-8,但PCL命令未被识别.

第二个问题:当我需要在这台打印机上打印PDF文件时,我有没有办法将PDF文件转换成PCL?

现在我可以打印字符串,但我不能打印pdf或图像等,我找到了方法,如何做到这一点。寻求任何帮助。

代码的部分:

代码语言:javascript
复制
    void sendCustomData() throws IOException {
    try {
        String msg =
                "<ESC>%-12345X@PJL COMMENT *Start Job* <CR><LF>\n" +
                        "@PJL JOB NAME = \"Sample Job #1\" <CR><LF>\n" +
                        "@PJL SET COPIES = 1 <CR><LF>\n" +
                        "@PJL SET RET = OFF <CR><LF>\n" +
                        "@PJL ENTER LANGUAGE = PCL <CR><LF>\n" +
                        "<ESC>E. . . . PCL job . . . .<ESC>E\n" +
                        "~<ESC>%-12345X@PJL <CR><LF>\n" +
                        "@PJL EOJ<CR><LF>\n" +
                        "<ESC>%-12345X";

        mOutputStream.write(msg.getBytes("ASCII"));
        tvStatus.setText("Custom data sent");
    } catch (NullPointerException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        closeBT();
        Toast.makeText(this, "BT conn closed", Toast.LENGTH_SHORT).show();
    }
}
EN

回答 2

Stack Overflow用户

发布于 2015-01-08 22:52:57

您不应该使用字符串文本"<ESC>“,因为它期待的是ASCII/UTF-8转义字符(Decimal 27,或十六进制1B)。相反,您应该声明char变量:

公共最终静态字符CHAR_ESC = 0x1B;

然后用它代替

字符串msg = CHAR_ESC + "%-12345X@PJL注释 Start \n“+.

票数 2
EN

Stack Overflow用户

发布于 2017-11-21 06:58:42

CR和LF也应替换为ASCII字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24408380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档