2009-04-21 4 views
1

Je travaille sur une application Swings J'ai un Jpanel, je suis confronté à un problème sérieux avec l'impression de cette données JPanel avec "imprimante de cartes". Cela fonctionne bien quand j'utilise l'imprimante couleur de papier mais quand j'utilise l'imprimante de carte son impression rien. J'ai testé l'imprimante en utilisant quelques images et il imprime bien quand j'imprime une image directement, mais en utilisant mon application ayant un problème l'imprimante de la carte ne reçoit pas de données pendant que l'imprimante papier est très bien. Tout le monde a fait face à cela avant ou n'importe qui s'il vous plaît aidez-moi. Ceci est mon code:Problème dans l'impression Jpanel Data

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

Répondre

0

J'ai couru à travers des problèmes avec certaines imprimantes ne pas aimer la façon dont l'impression Java fonctionne, et il semble beaucoup à voir avec la façon dont les imprimantes prennent en charge l'impression vectorielle. Essayez plutôt l'impression tramée. Rendez votre JLayeredPane dans un BufferedImage à 300 dpi et imprimez le BufferedImage.