如何在不选择java打印机的情况下打印

如何在不选择java打印机的情况下打印,java,Java,我试图用以下代码打印JPanel: try { PrinterJob gap = PrinterJob.getPrinterJob(); gap.setPrintable(this); boolean top = gap.printDialog(); if(top){ gap.print(); } } catch (PrinterException ex) { JOptionPane.showMessageDialog(nul

我试图用以下代码打印JPanel:

try {
    PrinterJob gap = PrinterJob.getPrinterJob();
    gap.setPrintable(this);
    boolean top = gap.printDialog();

    if(top){
        gap.print();

    }

} catch (PrinterException ex) {
    JOptionPane.showMessageDialog(null, " ERROR DEL PROGRAMA", "ERROR \n " + ex , JOptionPane.INFORMATION_MESSAGE);
}

但是,选择打印机时会出现配置菜单。我不希望选择打印机,我希望它是从默认打印机打印的,或者在代码中选择打印机。

如果您不想显示打印对话框,请删除“gap.printDialog()”,您只需要使用“gap.print()”

你可以这样做:

PrinterJob gap = PrinterJob.getPrinterJob();
PageFormat pf = gap.defaultPage();

//Manually assign some of the basic print settings (More advanced things may require you to write your own code)
gap.setJobName("My Print Jnb");

//Set custom page size?
Paper paper = new Paper();
paper.setSize(595, 842);
pf.setPaper(paper);

//Set page orientation?
pf.setOrientation(PageFormat.LANDSCAPE);

//Create the print job with our manual settings
gap.setPrintable(this, pf);

try
{
    //And finally print it out
    gap.print();
}
catch (PrinterException e)
{
    JOptionPane.showMessageDialog(null, " ERROR DEL PROGRAMA", "ERROR \n " + ex , JOptionPane.INFORMATION_MESSAGE);
}
编辑:如果要手动选择打印机,请查看以下问题:

为什么要标记php、mysql和jsp?