【问题标题】:Send PCL commands to bluetooth printer向蓝牙打印机发送 PCL 命令
【发布时间】:2014-08-15 23:59:06
【问题描述】:

我制作了 android 应用程序,它将向 BT 打印机 (HP Officejet 100) 发送 PCL 命令。问题是当我发送字符串数据(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();
    }
}

【问题讨论】:

  • Pavol,你找到答案了吗? TheWienke 指出您需要为 (0x1B) 使用 ANSI 值,但是我认为您编写的代码也不会写纯文本

标签: android pdf printing bluetooth printer-control-language


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    public final static char CHAR_ESC = 0x1B;

    改为使用它

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      • 2016-04-28
      • 2016-12-15
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多