我正试图在打印机POS上打印车票。这是爱普生TMU220PD。我可以打印,但我不知道如何为字体更大的打印机编程,以及如何自动切纸。我读了很多书,有一页他们说我可以使用ESC/POS命令,但我不知道如何操作。我有一个男人班,下一个代码是:
public static void main(String[] args) {
JavaApplication14 java = new JavaApplication14();
try {
FileWriter file = new FileWriter("/dev/usb/lp2");
BufferedWriter buffer = new BufferedWriter(file);
PrintWriter ps = new PrintWriter(buffer);
java.setFormato(5, ps);
java.cortar(ps);
}
"切割"的方法是这个
private void cortar(PrintWriter ps) {
try {
char[] ESC_CUT_PAPER = new char[]{0x1B, 'm'};
ps.write(ESC_CUT_PAPER);
} catch (Exception e) {
System.out.print(e);
}
}
当我要打印时,打印机正常工作来打印文本,但它不会剪切纸张。我也需要增加文本大小,但我不知道如何做到这一点,也不知道如何在java上使用ESC/POS命令。
你能试试吗
byte[] bCut = new byte[4];
bCut[0] = GS;
bCut[1] = 86;
bCut[2] = 65;
bCut[3] = 0;
String sCut = new String (bCut);
ps.write(bCut);
或
char[] cutOff = new char[]
{ 29, 'V', 65, 0 };
ps.write(cutOff);
让我知道它是否有效?
String text_to_print = "Hello world!";
PrintService foundService = PrintServiceLookup.lookupDefaultPrintService();
DocPrintJob dpj = foundService.createPrintJob();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
/// your legacy commands ini
// initialize printer
outputStream.write(27); // ESC
outputStream.write('@');
// print text
outputStream.write(text_to_print.getBytes());
// feed 5 lines
outputStream.write(27); // ESC
outputStream.write('d');
outputStream.write(5);
// cut paper
outputStream.write(29); // GS
outputStream.write('V');
outputStream.write(48);
你可以在这里看到完整的代码