如何水平打印jframe或赋予其打印属性?

时间:2018-07-18 04:00:34

标签: java netbeans printing

这是我正在使用的代码,我需要知道在这里可以更改属性,因为如果在这里运行它,它将向我发送打印部分,供您选择打印机或为其提供属性,我需要它水平,默认情况下为垂直

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;
}

1 个答案:

答案 0 :(得分:0)

在开始打印之前,您需要更改方向

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();
}

注意:用户可以在打印对话框中更改方向,只需在Printable中处理它