实现这个接口Printable就可以了   
下边是其中一点点代码.
   // 印刷設定データを取得する
            PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
            if (pageSettingData.getPaperDirection().equals("LANDSCAPE")) {
                aset.add(OrientationRequested.LANDSCAPE);
//                paper.setImageableArea(0,0,pageHeight,pageWidth);
            } else if (pageSettingData.getPaperDirection().equals("PORTRAIT")) {
                aset.add(OrientationRequested.PORTRAIT);
//                paper.setImageableArea(0,0,pageWidth,pageHeight);
            }            aset.add(new Copies(1));
            aset.add(new JobName("エリアの印刷", null));

解决方案 »

  1.   

    of course!
    我们打印用的是用友的CELL组件,代码是用java实现的。
      

  2.   

    还需要计算纸张大小,
            if (pageSettingData.getPaperDirection().equals("LANDSCAPE")) {
                if (paperSize.equals("A3")) {
                    pageWidth = 420 / 25.4 * 72;
                    pageHeight = 297 / 25.4 * 72;
                } else if (paperSize.equals("A4")) {
                    pageWidth = 297 / 25.4 * 72;
                    pageHeight = 210 / 25.4 * 72;
                } else if (paperSize.equals("A5")) {
                    pageWidth = 210 / 25.4 * 72;
                    pageHeight = 148 / 25.4 * 72;
                } else if (paperSize.equals("B2")) {
                    pageWidth = 707 / 25.4 * 72;
                    pageHeight = 500 / 25.4 * 72;
                } else if (paperSize.equals("B3")) {
                    pageWidth = 500 / 25.4 * 72;
                    pageHeight = 353 / 25.4 * 72;
                } else if (paperSize.equals("B4")) {
                    pageWidth = 353 / 25.4 * 72;
                    pageHeight = 250 / 25.4 * 72;
                }
            } else if (pageSettingData.getPaperDirection().equals("PORTRAIT")) {
                if (paperSize.equals("A3")) {
                    pageHeight = 420 / 25.4 * 72;
                    pageWidth = 297 / 25.4 * 72;
                } else if (paperSize.equals("A4")) {
                    pageHeight = 297 / 25.4 * 72;
                    pageWidth = 210 / 25.4 * 72;
                } else if (paperSize.equals("A5")) {
                    pageHeight = 210 / 25.4 * 72;
                    pageWidth = 148 / 25.4 * 72;
                } else if (paperSize.equals("B2")) {
                    pageHeight = 707 / 25.4 * 72;
                    pageWidth = 500 / 25.4 * 72;
                } else if (paperSize.equals("B3")) {
                    pageHeight = 500 / 25.4 * 72;
                    pageWidth = 353 / 25.4 * 72;
                } else if (paperSize.equals("B4")) {
                    pageHeight = 353 / 25.4 * 72;
                    pageWidth = 250 / 25.4 * 72;
                }
            }