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

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

JAVA使用Itext生成条形码、二维码。

使用jar包:itext-2.0.1.jar

条形码相关代码:

1.String strInfo="9009090909";  
2.          
3.int barCodeWidth=150;  
4.int barCodeHeight=60;  
5.int HEIGHT_SPACE = 20;     
6.          
7.//图片宽度     
8.int imageWidth = barCodeWidth;     
9.// 图片高度     
10.int imageHeight = barCodeHeight + HEIGHT_SPACE ;    
11.          
12.BufferedImage img = new BufferedImage(imageWidth, imageHeight,BufferedImage.TYPE_INT_RGB);  
13.  
14.Graphics2D g = (Graphics2D) img.getGraphics();   
15.g.fillRect(0, 0, imageWidth, imageHeight);   
16.  
17.Font font = new java.awt.Font("", java.awt.Font.PLAIN, 12);   
18.          
19.Barcode128 barcode128 = new Barcode128();  
20.          
21.FontRenderContext fontRenderContext = g.getFontRenderContext();   
22.          
23.//条形码(文字)的高度     
24.int stringHeight = (int) font.getStringBounds("",fontRenderContext).getHeight();     
25.// 图片横坐标开始位置     
26.int startX = 0;     
27.// 图片纵坐标开始位置     
28.int imageStartY = 0;     
29.int stringStartY = imageHeight-8;// 条形码(文字)开始位置   
30.          
31.int codeWidth = (int) font.getStringBounds(strInfo, fontRenderContext).getWidth();  
32.barcode128.setCode(strInfo);  
33.java.awt.Image codeImg = barcode128.createAwtImage(Color.black, Color.white);  
34.  
35.g.drawImage(codeImg, startX, imageStartY, barCodeWidth, barCodeHeight, Color.white, null);  
36.  
37.//为图片添加条形码(文字),位置为条形码图片的下部居中  
38.AttributedString ats = new AttributedString(strInfo);   
39.ats.addAttribute(TextAttribute.FONT, font, 0, strInfo.length());   
40.AttributedCharacterIterator iter = ats.getIterator();  
41.  
42.// 设置条形码(文字)的颜色    
43. g.setColor(Color.BLACK);     
44.// 绘制条形码(文字)     
45.g.drawString(iter, startX + (barCodeWidth - codeWidth) / 2, stringStartY);   
46.g.dispose();   
47.  
48.ImageIO.write(img, "PNG",new File("D:\\33333.png"));  

二维码相关代码:

1.String strInfo="9009090909";  
2.  
3.BarcodePDF417 barcodePDF417 = new BarcodePDF417();  
4.  
5.barcodePDF417.setText(strInfo.getBytes("GBK"));  
6.  
7.//计算公式为:(17 * codeColumns +3)+18  
8.//得到的这个值,正是二维码图片的宽度  
9.barcodePDF417.setCodeColumns(7);  
10.//二维码的内容也就是setText的值,内容越多,高度也会变高  
11.//是一个动态的高  
12.barcodePDF417.setYHeight(2);  
13.barcodePDF417.setOptions(BarcodePDF417.PDF417_FIXED_COLUMNS | BarcodePDF417.PDF417_USE_ERROR_LEVEL);  
14.  
15.java.awt.Image pdfImg = barcodePDF417.createAwtImage(Color.black, Color.white);  
16.  
17.BufferedImage img = new BufferedImage( pdfImg.getWidth(null),pdfImg.getHeight(null), BufferedImage.TYPE_INT_RGB);  
18.  
19.Graphics g = img.createGraphics();  
20.g.drawImage(pdfImg, 0, 0, Color.WHITE, null);  
21.g.dispose();   
22.  
23.ImageIO.write(img, "PNG",new File("D:\\33333.png"));  

获取【下载地址】 【新技术】现在最流行的java后台框架组合java springmvc mybaits mysql oracle html5 后台框架源码