首页 新闻 会员 周边

java page如何设置纸张

0
悬赏园豆:5 [待解决问题]

public class Test4 implements Printable {

public String sply = "barcode";
/** */
/**
  * @param Graphic指明打印的图形环境
  * @param
  *            PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点)
  * @param pageIndex指明页号
  */
public int print(Graphics gra, PageFormat pf, int pageIndex)
   throws PrinterException {
  Component c = null;
   Graphics2D g2 = (Graphics2D) gra;
   // 打印起点坐标
  double x = pf.getImageableX();
  double y = pf.getImageableY();
  switch (pageIndex) {
  case 0: 

   String sply = this.getSply();
   Image src = Toolkit.getDefaultToolkit().getImage(
     "C:\\" + sply + ".jpeg");


   g2.drawImage(src, (int) x, (int) y, c);   int img_Height = src.getHeight(c);
    return PAGE_EXISTS;
  default:
   return NO_SUCH_PAGE;
  }


}
public static void main(String[] args) {
  // 通俗理解就是书、文档
  Book book = new Book();
  // 设置成竖打
  PageFormat pf = new PageFormat();
  pf.setOrientation(PageFormat.PORTRAIT);
  // 通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。
  Paper p = new Paper();
  p.setSize(182, 80);// 纸张大小
  p.setImageableArea(0, 0, 1217, 177);// 设置打印区域
  pf.setPaper(p);
  // 把 PageFormat 和 Printable 添加到书中,组成一个页面
  book.append(new Test4(), pf);
  // 获取打印服务对象
  PrinterJob job = PrinterJob.getPrinterJob();
  // 设置打印类
  job.setPageable(book);


  try {
   // 可以用printDialog显示打印对话框,在用户确认后打印;也可以直接打印
   // boolean a=job.printDialog();
   // if(a)
    //{
   job.print();  //}
  } catch (PrinterException e) {
   e.printStackTrace();
  }
}


public String getSply() {
  return sply;
}


public void setSply(String sply) {
  this.sply = sply;
}
}


=======问题======================
p.setSize(182, 80);// 纸张大小
p.setImageableArea(0, 0, 1217, 177);// 设置打印区域
这两句里面的参数怎么设置,不知道怎么算
条码纸大小:103mm*15mm
图片大小:103mm*15mm   1217像素*177像素 300dpi

泥沙时代的主页 泥沙时代 | 初学一级 | 园豆:165
提问于:2013-03-19 01:48
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册