java条形码图片_java本地打印条码图片

public class Test4 implements Printable {

public String sply = "barcode";

public int print(Graphics gra, PageFormat pf, int pageIndex)

throws PrinterException {

Component c = null;

// print string

// 转换成Graphics2D

Graphics2D g2 = (Graphics2D) gra;

// 设置打印颜色为黑色

//g2.setColor(Color.black);

// 打印起点坐标

double x = pf.getImageableX();

double y = pf.getImageableY();

System.out.println(x);

System.out.println(y);

switch (pageIndex) {

case 0:

Dialog 和 DialogInput

//Font font = new Font("新宋体", Font.PLAIN, 9);

//g2.setFont(font);// 设置字体

// BasicStroke bs_3=new BasicStroke(0.5f);

//float[] dash1 = { 2.0f };

// 设置打印线的属性。

// 1.线宽 2、3、不知道,4、空白的宽度,5、虚线的宽度,6、偏移量

//g2.setStroke(new BasicStroke(0.5f, BasicStroke.CAP_BUTT,

//BasicStroke.JOIN_MITER, 2.0f, dash1, 0.0f));

// g2.setStroke(bs_3);//设置线宽

//float heigth = font.getSize2D();// 字体高度

// -1- 用Graphics2D直接输出

// 首字符的基线(右下部)位于用户空间中的 (x, y) 位置处

// g2.drawLine(10,10,200,300);

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

int img_width = src.getWidth(c);

System.out.println("img_Height="+img_Height+"img_width="+img_width);

//g2.drawImage(src, (int) x,(int) (y + 1 * heigth + img_Height + 11), 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();

final double MM_TO_PAPER=72/25.4;//打印的尺寸单位,1/72英寸,转换成mm

p.setSize(103*MM_TO_PAPER, 15*MM_TO_PAPER);// 纸张大小

p.setImageableArea(0, 0, 103*MM_TO_PAPER,15*MM_TO_PAPER);// A4(595 X

// 842)设置打印区域,其实0,0应该是72(右移),72,因为A4纸的默认X,Y边距是72

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;

}

}

打印出来的图片比原来的图片大?然后位置也有问题??

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值