2015-06-02 78 views
0

打印機試圖打印一個JPanel使用此代碼:我如何打印照片,無需選擇在Java

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

,但是,它是配置出現的菜單中選擇一臺打印機。我不想選擇打印機,我希望它是從默認的打印機打印或在代碼中選擇打印機。

+1

爲什麼你標記的PHP,MySQL和JSP? –

回答

0

如果你不想顯示打印對話框,然後刪除「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); 
} 

編輯:如果您想手動選擇打印機,然後看看這個問題: How do I specify the printer I want to use in Java?