Android 工作室 - PrinterThermal/ESCPOS - 图片来自 url

Android studio - PrinterThermal/ESCPOS - image from url

我正在尝试在 android 工作室的热敏 pos 蓝牙打印机上打印图像之类的二维码,打印机已连接 - 蓝牙,我可以将文本和图像打印为 Drawable,但我可以我无法打印来自 url 的图像,如果有人能提供帮助,我将不胜感激。

我想将二维码作为图像发送到打印机

URL := 'http://www.examples.com/code_1.png';

我使用这个功能(Android工作室),用于打印

  try {
              myBitSlika = getBitmapFromURL("https://examles.com/temp/code_nn.png") ;
        } catch (Exception e) {
            Log.e("APP", "url image::", e);
        }

  BluetoothConnection connection = BluetoothPrintersConnections.selectFirstPaired();
      if (connection != null) 
             {
             EscPosPrinter printer = new EscPosPrinter(connection, 203, 48f, 32);
   final String text = ""[C]<img>" + PrinterTextParserImg.bitmapToHexadecimalString(printer,myBitSlika )+ "</img>\n"  +
                            "[L]\n" +
                            "[L]" + df.format(new Date()) + "\n" +
                            "[C]================================\n" +
                            "[L]<b>Effective Java</b>\n" +
                            "[L]    1 pcs[R]" + nf.format(25000) + "\n" +
                            "[L]<b>Headfirst Android Development</b>\n" +
                            "[L]    1 pcs[R]" + nf.format(45000) + "\n" +
                            "[L]<b>The Martian</b>\n" +
                            "[L]    1 pcs[R]" + nf.format(20000) + "\n" +
                            "[C]--------------------------------\n" +
                            "[L]TOTAL[R]" + nf.format(90000) + "\n" +
                            "[L]DISCOUNT 15%[R]" + nf.format(13500) + "\n" +
                            "[L]TAX 10%[R]" + nf.format(7650) + "\n" +
                            "[L]<b>GRAND TOTAL[R]" + nf.format(84150) + "</b>\n" +
                            "[C]--------------------------------\n" +
                            "[C]<barcode type='ean13' height='10'>202105160005</barcode>\n" +
                            "[C]--------------------------------\n" +
                            "[C]Thanks For Shopping\n" +
                            "[C]https://kodejava.org\n" +
                            "[L]\n" +
                            "[L]<qrcode>https://kodejava.org</qrcode>\n";
    
                    printer.printFormattedText(text);

我使用此功能从互联网上检索图像

public static Bitmap getBitmapFromURL(String src) {
    try {
        URL url = new URL(src);
        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
    } catch (IOException e) {
        Log.e("APP", "save image", e);
        return null;
    }
}

如果不是myBitSlika,我放它来拍照 有 drawable 目录,打印没有问题,(PrinterTextParserImg.bitmapToHexadecimalString(printer,this.getApplicationContext().getResources().getDrawableForDensity(R.drawable.code_232,DisplayMetrics.DENSITY_LOW, getTheme ()))

final String text = "[C]<img>" + PrinterTextParserImg.bitmapToHexadecimalString(printer,this.getApplicationContext().getResources().getDrawableForDensity(R.drawable.code_232,DisplayMetrics.DENSITY_LOW, getTheme())) + "</img>\n" +

二维码 <qrcode></qrcode> 标签允许您打印二维码。标签内需要写入二维码数据。

<qrcode>http://www.developpeur-web.dantsu.com/</qrcode> :打印一个宽高为20毫米的二维码。 <qrcode size='25'>123456789</qrcode> :打印一个宽高为25毫米的二维码。 ⚠ 警告 ⚠ :这个标签有几个限制:

包含 <qrcode></qrcode> 的行只能有一个对齐标记,并且必须位于行首。 <qrcode> 前面必须没有任何内容或对齐标记 ([L][C][R])。 </qrcode> 后面必须直接跟一个新行 \n。 您不能在包含 <qrcode></qrcode>.

的行上写入文本

查看此以了解更多信息:https://github.com/DantSu/ESCPOS-ThermalPrinter-Android/tree/1a5b3436526ee2f3b5603a2e72bd12ada94f8e7a#qr-code