java applet实现套打

来源:互联网 发布:淘宝编辑宝贝图片尺寸 编辑:程序博客网 时间:2024/05/09 16:15
  1. import java.awt.print.*;
  2. import java.awt.*;
  3. /*实现套打,把套打的格式当成一张图片,将要填入的数据按其在图片在坐标来定位*/
  4. public class PrintTest implements Printable {
  5.     private String[] value = null;// 所要打印的数据{ "001", "002", "003"};
  6.     private int[][] position = null;// 每个数据在图片中的坐标 { { 10, 50 }, { 30, 70 }, { 50,   90 }};
  7.     /**
  8.      * implements Printable
  9.      * PageFormat类描述了页面的定位信息、它的尺寸以及每英尺可绘制的区域(单位1/72nd)。
  10.      */
  11.     public int print(Graphics g, PageFormat pf, int pageIndex) {
  12.         
  13.         System.out.println(pageIndex);
  14.         // 只打一页
  15.         if (pageIndex > 0) {
  16.             return Printable.NO_SUCH_PAGE;
  17.         }
  18.         Graphics2D g2d = (Graphics2D) g;
  19.         for (int i = 0; i < value.length; i++) {
  20.             String str = value[i];
  21.             int[] temp = position[i];
  22.             int x = temp[0];
  23.             int y = temp[1];
  24.             g2d.drawString(str, x, y);
  25.         }
  26.         return Printable.PAGE_EXISTS;
  27.     }
  28.     public static void main(String[] args) {
  29.         printReport();
  30.     }
  31.     public static void  printReport() {
  32.         PrinterJob pj = PrinterJob.getPrinterJob();//创建一个打印任务
  33.         PageFormat pf = PrinterJob.getPrinterJob().defaultPage();
  34.         Paper paper = pf.getPaper();
  35.         // Set Paper Size
  36.         double pageWidth = 480;
  37.         double pageHeight = 640;
  38.         paper.setSize(pageWidth, pageHeight);
  39.         paper.setImageableArea(00, pageWidth, pageHeight);
  40.         pf.setPaper(paper);
  41.         
  42.         PrintTest  printTest=new PrintTest();
  43.         printTest.setValue(new String []{"001""002""003"});
  44.         printTest.setPosition(new int [][]{{ 1050 }, { 3070 }, { 50,     90 }});
  45.         
  46.         pj.setPrintable(printTest, pf);
  47.         if (pj.printDialog()) { //弹出打印对话框,打印对话框,用户可以通过它改变各种选项,例如:设置打印副本数目,页面方向,或者目标打印机。
  48.             try {
  49.                 pj.print();
  50.             } catch (PrinterException e) {
  51.                 e.printStackTrace();
  52.             }
  53.         }
  54.     }
  55.     /**
  56.      * @return 返回 position。
  57.      */
  58.     public int[][] getPosition() {
  59.         return position;
  60.     }
  61.     /**
  62.      * @param position
  63.      *            要设置的 position。
  64.      */
  65.     public void setPosition(int[][] position) {
  66.         this.position = position;
  67.     }
  68.     /**
  69.      * @return 返回 value。
  70.      */
  71.     public String[] getValue() {
  72.         return value;
  73.     }
  74.     /**
  75.      * @param value
  76.      *            要设置的 value。
  77.      */
  78.     public void setValue(String[] value) {
  79.         this.value = value;
  80.     }
  81. }
原创粉丝点击