Hallo, vielleicht kann mir jemand hier weiterhelfen.
Ich habe folgendes Problem:
ich will 2 Seiten drucken (keine Kopien).
Ich verstehe nicht, warum die Methode print() von meinem Printable
für jede Seite 2 mal aufgerufen wird und wie ich es umgehen kann.
Mit System.out.println(pageIndex); frage ich die aktuelle Seitenzahl ab
und die Ausgabe sieht so aus:
0
0
1
1
:shock:
Ich habe folgendes Problem:
ich will 2 Seiten drucken (keine Kopien).
Ich verstehe nicht, warum die Methode print() von meinem Printable
für jede Seite 2 mal aufgerufen wird und wie ich es umgehen kann.
Mit System.out.println(pageIndex); frage ich die aktuelle Seitenzahl ab
und die Ausgabe sieht so aus:
0
0
1
1
:shock:
Code:
package test;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
public class PrintTest implements Printable {
private PrinterJob printerJob;
private PageFormat pageFormat;
private final int pages;
public PrintTest() {
printerJob = PrinterJob.getPrinterJob();
pageFormat = printerJob.defaultPage();
pages = 2;
}
/**
* @param args
*/
public static void main(String[] args) {
PrintTest printTest = new PrintTest();
printTest.print();
}
public void print() {
printerJob.setJobName("LabelPrinterTest");
printerJob.setCopies(1);
printerJob.setPrintable(this, pageFormat);
if (printerJob.printDialog()) {
try {
printerJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
throws PrinterException {
if (pageIndex >= pages) {
return NO_SUCH_PAGE;
}
else {
System.out.println(pageIndex);
graphics.setColor(Color.RED);
graphics.fillRect(20, 20, 100, 100);
}
return PAGE_EXISTS;
}
}