Java 如何水平打印jframe或赋予其打印属性?
这是我正在使用的代码,我需要知道我可以在哪里更改这里的属性,因为在这里,如果我运行它,它会向我发送打印部分,您可以在其中选择打印机或赋予它属性,我需要它水平,默认情况下它会垂直Java 如何水平打印jframe或赋予其打印属性?,java,netbeans,printing,Java,Netbeans,Printing,这是我正在使用的代码,我需要知道我可以在哪里更改这里的属性,因为在这里,如果我运行它,它会向我发送打印部分,您可以在其中选择打印机或赋予它属性,我需要它水平,默认情况下它会垂直 public int print(Graphics grap, PageFormat pagFor, int index) throws PrinterException { if (index > 0) { return NO_SUCH_PAGE; } // pagFor
public int print(Graphics grap, PageFormat pagFor, int index) throws
PrinterException {
if (index > 0)
{
return NO_SUCH_PAGE;
}
// pagFor.setOrientation(0);
pagFor.setOrientation(PageFormat.LANDSCAPE);
Graphics2D hub = (Graphics2D) grap;
hub.translate(pagFor.getImageableX() + 5, pagFor.getImageableY());
hub.scale(0.5, 0.5);
jPanel1.printAll(grap);
return PAGE_EXISTS;
}
开始打印之前,需要更改方向
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setJobName("My super-dup awesome print job");
PageFormat pf = pj.defaultPage();
pf.setOrientation(PageFormat.LANDSCAPE);
pf = pj.validatePage(pf);
pj.setPrintable(..., pf);
if (!pj.printDialog()) {
return;
}
try {
pj.print();
} catch (PrinterException ex) {
ex.printStackTrace();
}
注意:用户可能会在“打印”对话框中更改方向,您只需在
可打印的中进行处理您需要在打印前设置方向,这对我有很大帮助,这正是我需要的,我想知道我是否无法避免打印机的kain部分,我只想在点击按钮的瞬间打印。如果(!pj.printDialog()){…},则不需要块,如果您不想向用户显示打印对话框,但它将打印到默认打印机