Java打印
使用 PrintRequestAttributeSet 控制页面大小和方向
使用 PrintRequestAttributeSet 控制页面大小和方向
private void printComp() throws HeadlessException {
PrinterJob printJob = PrinterJob.getPrinterJob();
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(javax.print.attribute.standard.MediaSizeName.ISO_A4);
pras.add(javax.print.attribute.standard.OrientationRequested.LANDSCAPE);
if (printJob.printDialog(pras)) {
try {
printJob.setPrintable(this, printJob.getPageFormat(pras));
printJob.print();
} catch (PrinterException pe) {
System.out.println("Error printing: " + pe);
}
}
}
@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex > 0) {
return (NO_SUCH_PAGE);
} else {
Graphics2D g2d = (Graphics2D) graphics;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
double d = pageFormat.getImageableWidth() / bp.getWidth();
g2d.scale(d, d);
// Turn off double buffering
disableDoubleBuffering(this.bp);
content.paint(g2d);
// Turn double buffering back on
enableDoubleBuffering(this.bp);
return (PAGE_EXISTS);
}
}