java用Itext生成条形码和二维码

[size=large]JAVA使用Itext生成条形码、二维码。[/size]

使用jar包:itext-2.0.1.jar

条形码相关代码:


String strInfo="9009090909";

int barCodeWidth=150;
int barCodeHeight=60;
int HEIGHT_SPACE = 20;

//图片宽度
int imageWidth = barCodeWidth;
// 图片高度
int imageHeight = barCodeHeight + HEIGHT_SPACE ;

BufferedImage img = new BufferedImage(imageWidth, imageHeight,BufferedImage.TYPE_INT_RGB);

Graphics2D g = (Graphics2D) img.getGraphics();
g.fillRect(0, 0, imageWidth, imageHeight);

Font font = new java.awt.Font("", java.awt.Font.PLAIN, 12);

Barcode128 barcode128 = new Barcode128();

FontRenderContext fontRenderContext = g.getFontRenderContext();

//条形码(文字)的高度
int stringHeight = (int) font.getStringBounds("",fontRenderContext).getHeight();
// 图片横坐标开始位置
int startX = 0;
// 图片纵坐标开始位置
int imageStartY = 0;
int stringStartY = imageHeight-8;// 条形码(文字)开始位置

int codeWidth = (int) font.getStringBounds(strInfo, fontRenderContext).getWidth();
barcode128.setCode(strInfo);
java.awt.Image codeImg = barcode128.createAwtImage(Color.black, Color.white);

g.drawImage(codeImg, startX, imageStartY, barCodeWidth, barCodeHeight, Color.white, null);

//为图片添加条形码(文字),位置为条形码图片的下部居中
AttributedString ats = new AttributedString(strInfo);
ats.addAttribute(TextAttribute.FONT, font, 0, strInfo.length());
AttributedCharacterIterator iter = ats.getIterator();

// 设置条形码(文字)的颜色
g.setColor(Color.BLACK);
// 绘制条形码(文字)
g.drawString(iter, startX + (barCodeWidth - codeWidth) / 2, stringStartY);
g.dispose();

ImageIO.write(img, "PNG",new File("D:\\33333.png"));


二维码相关代码:


String strInfo="9009090909";

BarcodePDF417 barcodePDF417 = new BarcodePDF417();

barcodePDF417.setText(strInfo.getBytes("GBK"));

//计算公式为:(17 * codeColumns +3)+18
//得到的这个值,正是二维码图片的宽度
barcodePDF417.setCodeColumns(7);
//二维码的内容也就是setText的值,内容越多,高度也会变高
//是一个动态的高
barcodePDF417.setYHeight(2);
barcodePDF417.setOptions(BarcodePDF417.PDF417_FIXED_COLUMNS | BarcodePDF417.PDF417_USE_ERROR_LEVEL);

java.awt.Image pdfImg = barcodePDF417.createAwtImage(Color.black, Color.white);

BufferedImage img = new BufferedImage( pdfImg.getWidth(null),pdfImg.getHeight(null), BufferedImage.TYPE_INT_RGB);

Graphics g = img.createGraphics();
g.drawImage(pdfImg, 0, 0, Color.WHITE, null);
g.dispose();

ImageIO.write(img, "PNG",new File("D:\\33333.png"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值