private void printCard() {
PrinterJob printjob = PrinterJob.getPrinterJob();
printjob.setJobName("Label");
Printable printable = new Printable() {
public int print(Graphics pg, PageFormat pf, int pageNum) {
if (pageNum > 0) {
return Printable.NO_SUCH_PAGE;
}
Dimension size = jLayeredPane2.getSize();
BufferedImage bufferedImage = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
jLayeredPane2.print(bufferedImage.getGraphics());
Graphics2D g2 = (Graphics2D) pg;
g2.translate(pf.getImageableX(), pf.getImageableY());
g2.drawImage(bufferedImage, 0, 0, (int) pf.getWidth(), (int) pf.getHeight(), null);
return Printable.PAGE_EXISTS;
}
};
Paper paper = new Paper();
paper.setImageableArea(0, 0, 153, 243);
paper.setSize(243, 154);
PageFormat format = new PageFormat();
format.setPaper(paper);
format.setOrientation(PageFormat.LANDSCAPE);
printjob.setPrintable(printable, format);
if (printjob.printDialog() == false)
return;
try {
printjob.print();
} catch (PrinterException ex) {
System.out.println("NO PAGE FOUND." + ex);
}
}
views:
41answers:
1
+1
A:
From what I see in your code, you call if (printjob.printDialog() == false)
. This will always try to show the native printer properties dialog. The boolean
return value is based on whether the user clicks OK or cancels out of the dialog. If you want to suppress the dialog, remove that if
block, as the printing work that you want to perform is done via the printjob.print()
call.
akf
2010-06-24 05:00:50
Thanks, that was it! I commented that section out, and I no longer got the print dialog box. I clicked the print button in my program, and it just printed to the default printer. Exactly what I wanted. Thank you so much!
Magwich
2010-06-25 19:22:48