java - 从 Android 应用程序打印到热敏打印机 (DPP 450)

标签 java android thermal-printer escpos

我正在开发一个 Android Java 应用程序,它使用热敏打印机来打印送货单。

实际上,我有两种打印机型号可以通过蓝牙打印正常(使用 ESC/POS ),但是当我尝试使用 DPP-450 (支持 ESC/POS )进行打印时,它通过蓝牙连接正常,但不打印任何东西。

我的打印方式是:

if (mbtSocket!=null && mbtSocket.isConnected()) {
    inReader = mbtSocket.getInputStream();
    outReader = mbtSocket.getOutputStream();
    int s = inReader.available();
    outReader.write(setInitp);
    String sendingmessage = "******************************" + "\n";
    byte[] send = sendingmessage.getBytes();
    outReader.write(send);
    sendingmessage = "Esto es una prueba de impresión" + "\n";
    send = sendingmessage.getBytes();
    outReader.write(send);
    outReader.flush();
    s = inReader.available();
    inReader.skip(0);
}

这段代码适用于我的另外两台打印机(Citizen CMP-40 和 Star 打印机 BTT),但不适用于 DPP-450。

有人可以帮我吗?

最佳答案

我发现了这个问题。

看来这台打印机使用 channel 来确定它,(没有其他尝试解决我的问题),后来我将代码调整到我的应用程序,我发布了我解决它的方式:

inReader = mbtSocket.getInputStream();
outReader = mbtSocket.getOutputStream();
ProtocolAdapter mProtocolAdapter = new ProtocolAdapter(inReader, outReader);
mPrinterChannel = mProtocolAdapter.getChannel(ProtocolAdapter.CHANNEL_PRINTER);
Printer printer = new Printer(mPrinterChannel.getInputStream(), mPrinterChannel.getOutputStream());
try{
    textBuffer.append("{reset}{center}{s}Thank You!{br}");
    printer.reset();
    printer.printTaggedText(textBuffer.toString());
    printer.feedPaper(110);
    printer.flush();  
} catch(Exception e){
    e.printStackTrace();
    Log.e("Error: " + e, "Error");
}

希望这对其他人有帮助! :)

关于java - 从 Android 应用程序打印到热敏打印机 (DPP 450),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42690976/

相关文章:

android - 处理许多全屏 png 以避免 OOM

flutter - 如何使用 Flutter esc_pos_printer 库用热敏打印机打印阿拉伯字母?

java printjob 横向空白

java - 使用@Qualifier注释抛出 "NoUniqueBeanDefinitionException"(发现多个相同类型的bean)

java - 对于具有纯 Java 配置的 Spring Web 应用程序,拥有 2 个不同的上下文有意义吗?

python - 将阿拉伯字符绘制到位图

html - 如何在HTML页面中获取EPSON TM-T88V小票打印机的默认字体 "Font A11"?

java - 异常: NumberFormatException: For input string in JSP list Page

java - Android Overlay onTap() - 确定是否是这个覆盖层被点击

java - 使用 LibGdx 在 Android 上渲染完整的平铺 map