Ich verwende die Java Print Service API, um auf einem Belegdrucker zu drucken. Es druckt gut, schneidet aber nicht automatisch ab. Wie kann ich dem Drucker mitteilen, dass er automatisch schneidet?Java: Belegdrucker automatisches Schneiden
Hier ist der Code, den ich zu drucken bin mit:
String defaultPrinter =
PrintServiceLookup.lookupDefaultPrintService().getName();
System.out.println("Default printer: " + defaultPrinter);
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
InputStream is=null;
try {
printString+="\f";
System.out.println(printString);
is = new ByteArrayInputStream(printString.getBytes("UTF8"));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(is, flavor, null);
DocPrintJob job = service.createPrintJob();
PrintJobWatcher pjw = new PrintJobWatcher(job);
try {
job.print(doc, pras);
} catch (PrintException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
pjw.waitForDone();
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Mein Drucker ist ein Star TSP100 Drucker, aber dieser Befehl scheint nichts zu tun. –
Meinst du, du hast die obigen Codes ausprobiert (was nicht funktioniert, weil sie für ein anderes Modell sind) oder die Codes für deinen Drucker? Von diesem Link (http://www.starmicronics.com/absolutefm/absolutefm/attachments/92/Application%20note%20-%20Star%20Micronics%20Printers%20with%20Booklog%20Software.pdf) die Einträge, die Sie im Byte wünschen Array scheint '27, 100, 3' zu sein. Funktioniert das überhaupt? – berry120
Das hat es geschafft! Danke, dass du das für mich gefunden hast! –