gpt4 book ai didi

android - 发送 PCL 命令到蓝牙打印机

转载 作者:行者123 更新时间:2023-11-29 00:18:56 25 4
gpt4 key购买 nike

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

我也尝试将字符集更改为 US-ASCII、UTF-8,但无法识别 PCL 命令。

第二个问题:有没有什么方法可以将 PDF 文件转换为 PCL,或者当我需要在这台打印机上打印 PDF 文件时我可以怎么做?

现在我可以打印字符串,但我不能打印 pdf 或图像等,我找到了如何做到这一点。感谢您的帮助。

部分代码:

    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();
}
}

最佳答案

您不应使用字符串文字“< ESC > ”,因为它需要 ASCII/UTF-8 转义字符(十进制 27 或十六进制 1B)。相反,您应该声明一个 char 变量:

public final static char CHAR_ESC = 0x1B;

然后改用它

String msg = CHAR_ESC + "%-12345X@PJL COMMENT 开始工作\n"+ ...

关于android - 发送 PCL 命令到蓝牙打印机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24408380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com