2009-04-21 12 views
1

私はJpanelを持っているスイングのアプリケーションに取り組んでいます。私はこのJPanelのデータを"カードプリンタ"で印刷する際に深刻な問題に直面しています。私は紙のカラープリンタを使用していますが、私はカードプリンタを使用しているときには何も印刷されていません。私はいくつかの画像を使用してプリンタをテストしています。画像を直接印刷するときは問題なく印刷できますが、カードプリンタはデータを受信しません。誰もがこれに直面するか、誰かが私を助けてください。これは私のコードです:Jpanelのデータを印刷する際の問題

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

答えて

0

私は一部のプリンタは、Java印刷がどのように機能するかを好きではないとの問題全体を実行しました、そして、プリンタは、ベクターベースの印刷をサポートする方法で行うことを大幅に思えます。代わりにラスタ印刷を試してみてください。 JLayeredPaneを300dpiでBufferedImageにレンダリングし、BufferedImageを出力します。

関連する問題