2009-04-21 9 views
1

Ich arbeite an einer Schaukeln-Anwendung Ich habe ein Jpanel, ich habe ein ernstes Problem mit dem Drucken dieser JPanel Daten mit "Kartendrucker". Dies funktioniert gut, wenn ich einen Papierfarbdrucker benutze, aber wenn ich einen Kartendrucker benutze, wird nichts gedruckt. Ich habe den Drucker mit einigen Bildern getestet und er druckt einwandfrei, wenn ich ein Bild direkt drucke, aber meine Anwendung mit dem Problem verwendet, dass der Kartendrucker keine Daten empfängt, während der Papierdrucker einwandfrei gedruckt wird. Jeder, der damit konfrontiert wurde, oder jemand anderes, hilf mir bitte. Dies ist mein Code:Problem beim Drucken von Jpanel Daten

private void printCard(){ 

    PrinterJob printjob = PrinterJob.getPrinterJob(); 
    printjob.setJobName(" CUSTOMER CARD "); 

    printjob.setPrintable (new Printable() {  
     public int print(Graphics pg, PageFormat pf, int pageNum){     

      pf.setOrientation(PageFormat.LANDSCAPE); 

      if (pageNum > 0){ 
       return Printable.NO_SUCH_PAGE; 
      } 

      Graphics2D g2 = (Graphics2D) pg; 
      g2.translate(pf.getImageableX(), pf.getImageableY()); 
      g2.translate(0f, 0f); 
      jLayeredPane2.paint(g2); 

      return Printable.PAGE_EXISTS; 
     } 
    }); 

    if (printjob.printDialog() == false) 
     return; 

    try { 
     printjob.print(); 
    } 
    catch (PrinterException ex) { 
     System.out.println("NO PAGE FOUND."+ex); 
    } 
} 

Antwort

0

ich auf Probleme stoßen habe mit einigen Druckern nicht zu mögen, wie Java Druck arbeitet, und es scheint stark zu tun, wie die Drucker unterstützen vektorbasierten Druck. Versuchen Sie stattdessen das Rasterdrucken. Rendern Sie JLayeredPane in einem BufferedImage bei 300dpi, und drucken Sie das BufferedImage.

Verwandte Themen