打印Jpanel数据时出现问题

时间:2009-04-21 09:38:23

标签: java swing printing

我正在开发一个应用程序,我有一个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);
    }
 }

1 个答案:

答案 0 :(得分:0)

我遇到过一些不喜欢Java打印工作的打印机的问题,这似乎与打印机如何支持基于矢量的打印有很大关系。请尝试光栅打印。将您的JLayeredPane渲染为300dpi的BufferedImage并打印BufferedImage。