相关疑难解决方法(0)

如何在Android中的蓝牙打印机上打印图像?

我必须在热蓝牙打印机上打印一些数据,我正在这样做:

String message="abcdef any message 12345";
byte[] send;
send = message.getBytes();
mService.write(send);
Run Code Online (Sandbox Code Playgroud)

它适用于文本,但不适用于图像.我想我需要获取byte[]图像数据.我尝试以这种方式获取图像的数据:

Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.qrcode);
ByteArrayOutputStream stream=new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream);
byte[] image=stream.toByteArray();
Run Code Online (Sandbox Code Playgroud)

不幸的是,打印机会打印出许多奇怪的字符(大约50厘米的纸张).我不知道如何打印图像.

我想尝试获取位图的像素,然后将其转换为a byte[]并发送它,但我不知道该怎么做.

谢谢

更新:

经过这么多时间,我这样做:我有一个名为print_image(String file)的方法,它获取我想要打印的图像的路径:

private void print_image(String file) {
    File fl = new File(file);
    if (fl.exists()) {
        Bitmap bmp = BitmapFactory.decodeFile(file);
        convertBitmap(bmp);
        mService.write(PrinterCommands.SET_LINE_SPACING_24);

        int offset = 0;
        while (offset < bmp.getHeight()) {
            mService.write(PrinterCommands.SELECT_BIT_IMAGE_MODE);
            for (int x = 0; x < bmp.getWidth(); ++x) {

                for (int k = 0; k < …
Run Code Online (Sandbox Code Playgroud)

java android bytearray bitmap bitmapfactory

49
推荐指数
4
解决办法
6万
查看次数

如何从Android中的热敏打印机打印?

我正在开发一款具有内置行式打印机的Android设备应用程序.我必须与此打印机进行交互,并使用它在收货时打印详细信息,然后自动切割收据.我在其中看到了一些ESC命令,但我不知道如何执行这些ESC命令.

关于卡西欧设备打印机,我有三个主要问题:

1.我使用了内置打印机的打印代码,但打印后切刀未激活

BuildinEx840 ex840 = new BuildinEx840();
int response = ex840.open();
System.out.println("ex840 open:" + response);

byte[] set = {
    'N', 'A', 'R', 'E', 'S', 'H', 'S', 'H', 'A', 'R', 'M', 'A', (byte) 0x0d, (byte) 0x0a
};

try {        

    ex840.write(set);   

} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

try {

    response = ex840.getEndStatus();
    System.out.println("getEndStatus:" + response);
    response = ex840.initCutter();
    ex840.close();    
    System.out.println("initCutter:" + response);

} catch (Exception e) {         
    e.printStackTrace();         
}
Run Code Online (Sandbox Code Playgroud)

2.我不知道如何将ESC命令发送到android中的打印机

有如下命令的数量

ESC FF DataPrint,
[code] …
Run Code Online (Sandbox Code Playgroud)

java android escaping thermal-printer point-of-sale

33
推荐指数
1
解决办法
2万
查看次数