gestion des formats de tickets!

This commit is contained in:
OnlyPapy98
2026-02-16 10:16:49 +01:00
parent 2fc21fd433
commit acc5ec1b70
92 changed files with 3903 additions and 905 deletions

View File

@@ -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();
});

View File

@@ -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;