gestion des formats de tickets!
This commit is contained in:
@@ -351,19 +351,35 @@ public class Printama {
|
||||
});
|
||||
}
|
||||
|
||||
public String lineSeparator() {
|
||||
return "-".repeat(_util.getMaxMP5Printer());
|
||||
}
|
||||
|
||||
|
||||
public void printTextBuilder(StringBuilder text, Bitmap bitmap, String numeroTicket,Bitmap barCode){
|
||||
_printama.connect(printama -> {
|
||||
printama.printImage(bitmap);
|
||||
printama.printText("\n\n--------------------------------\n");
|
||||
printama.printImage(barCode);
|
||||
printama.printText("\n"+numeroTicket+"\n",PA.CENTER);
|
||||
printama.printText("\n--------------------------------\n");
|
||||
printama.setNormalText();
|
||||
_util.resetPrinter();
|
||||
_util.setBold();
|
||||
_util.printImage(bitmap);
|
||||
_util.printText(printama.lineSeparator()+"\n");
|
||||
_util.setBold();
|
||||
_util.printImage(barCode);
|
||||
_util.setBold();
|
||||
_util.setNormalText();
|
||||
_util.setAlign(PA.CENTER);
|
||||
_util.printText(numeroTicket);
|
||||
_util.printText("\n"+printama.lineSeparator()+"\n");
|
||||
_util.setBold();
|
||||
_util.setNormalText();
|
||||
_util.setAlign(0);
|
||||
_util.setAlign(PA.LEFT);
|
||||
printTextBuilder(text);
|
||||
printama.printText("--------------------------------\n");
|
||||
printama.printText("Powered by PMU-MALI", PA.CENTER);
|
||||
printama.printText("\n--------------------------------\n \n \n");
|
||||
_util.printText(text.toString());
|
||||
_util.printText(printama.lineSeparator()+"\n");
|
||||
_util.setBold();
|
||||
_util.setNormalText();
|
||||
_util.setAlign(PA.CENTER);
|
||||
_util.printText("Powered by PMU-MALI");
|
||||
_util.printText("\n"+printama.lineSeparator()+"\n");
|
||||
printama.feedPaper();
|
||||
printama.close();
|
||||
});
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.anggastudio.printama;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothSocket;
|
||||
import android.graphics.Bitmap;
|
||||
@@ -26,6 +27,7 @@ class PrinterUtil {
|
||||
private static final int PRINTER_WIDTH_3_INCH = 576; // 3-inch (80mm) printer
|
||||
private static final int MAX_CHAR_2_INCH = 32;
|
||||
private static final int MAX_CHAR_3_INCH = 48;
|
||||
private static final int MAX_CHAR_MP5_INCH = 54;
|
||||
private static final int WIDTH_2_INCH = 48; // 384/8 = 48 bytes per line
|
||||
private static final int WIDTH_3_INCH = 72; // 576/8 = 72 bytes per line
|
||||
private static final int HEAD = 8;
|
||||
@@ -38,6 +40,7 @@ class PrinterUtil {
|
||||
|
||||
private static final byte[] SMALL = new byte[]{0x1B, 0x21, 0x01};
|
||||
private static final byte[] NORMAL = new byte[]{0x1B, 0x21, 0x00};
|
||||
private static final byte[] NORMALIZED_FOR_ALL = new byte[]{0x1B, 0x4D, 0x00};
|
||||
private static final byte[] BOLD = new byte[]{0x1B, 0x21, 0x08};
|
||||
private static final byte[] WIDE = new byte[]{0x1B, 0x21, 0x20};
|
||||
private static final byte[] TALL = new byte[]{0x1B, 0x21, 0x10};
|
||||
@@ -137,6 +140,10 @@ class PrinterUtil {
|
||||
}
|
||||
}
|
||||
|
||||
void setNormalizedForAll(){
|
||||
printUnicode(NORMALIZED_FOR_ALL);
|
||||
}
|
||||
|
||||
void setNormalText() {
|
||||
printUnicode(NORMAL);
|
||||
}
|
||||
@@ -451,6 +458,16 @@ class PrinterUtil {
|
||||
return is3InchPrinter ? MAX_CHAR_3_INCH : MAX_CHAR_2_INCH;
|
||||
}
|
||||
|
||||
public int getMaxMP5Printer(){
|
||||
return _isMP5Printer()?MAX_CHAR_MP5_INCH:MAX_CHAR_2_INCH;
|
||||
}
|
||||
|
||||
boolean _isMP5Printer(){
|
||||
@SuppressLint("MissingPermission") String name = printer.getName();
|
||||
return name.equals("MP5 Printer");
|
||||
|
||||
}
|
||||
|
||||
private static class ConnectAsyncTask extends AsyncTask<BluetoothDevice, Void, BluetoothSocket> {
|
||||
private final ConnectionListener listener;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user