1.去序号和点

描述: 拷贝代码时,每行会有 1. 这样的,很讨厌。[0-9]+/.

------------------------------------------------------------------------------------------------------
1.private static final int HEIGHT_SPACE = 20;// 图片之间的间隔  
2. 
3.public static void main(String[] args) throws Exception {  
4.    List<String> codeList = new ArrayList<String>();  
5.    codeList.add("ABCD124645765");  
6.    codeList.add("ABCD12-4645-765");  
7.    codeList.add("ABCD12464-5765");  
8.    codeList.add("AB-CD1-246457-65");  
9.    createBarcodeImage(200, 100, codeList);  
10.    System.out.println("The image is created.");  
11.}  
12. 
13./** 
14. * Creates the barcode image. 
15. *  
16. * @param barCodeWidth 
17. *            生成条形码的宽度 
18. * @param barCodeHeight 
19. *            生成条形码的高度 
20. * @param codeList 
21. *            要生成条形码的字符集合 
22. *  
23. * @throws Exception 
24. *             the exception 
25. */ 
26.public static void createBarcodeImage(int barCodeWidth, int barCodeHeight,  
27.        List<String> codeList) throws Exception {  
28.    // list不能为空  
29.    Assert.assertTrue("The list can not empty.", codeList.size() > 0);  
30.    // 图片宽度  
31.    int imageWidth = (barCodeWidth + barCodeWidth / 2) * codeList.size() + barCodeWidth / 2;  
32.    // 图片高度  
33.    int imageHeight = barCodeHeight + HEIGHT_SPACE * 2;  
34.    BufferedImage img = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);  
35.    Graphics2D g = (Graphics2D) img.getGraphics();  
36.    g.fillRect(0, 0, imageWidth, imageHeight);  
37.    Font font = new java.awt.Font("", java.awt.Font.PLAIN, 12);  
38.    Barcode128 barcode128 = new Barcode128();  
39.    FontRenderContext fontRenderContext = g.getFontRenderContext();  
40.    // 条形码(文字)的高度  
41.    int stringHeight = (int) font.getStringBounds("", fontRenderContext).getHeight();  
42.    // 图片横坐标开始位置  
43.    int startX = barCodeWidth / 2;  
44.    // 图片纵坐标开始位置  
45.    int imageStartY = (imageHeight - barCodeHeight - stringHeight) / 2;  
46.    int stringStartY = imageStartY * 2 + barCodeHeight;// 条形码(文字)开始位置  
47.    for (String code : codeList) {  
48.        int codeWidth = (int) font.getStringBounds(code, fontRenderContext).getWidth();  
49.        barcode128.setCode(code);  
50.        Image codeImg = barcode128.createAwtImage(Color.black, Color.white);  
51.        g.drawImage(codeImg, startX, imageStartY, barCodeWidth, barCodeHeight, Color.white, null);  
52.        // 为图片添加条形码(文字),位置为条形码图片的下部居中  
53.        AttributedString ats = new AttributedString(code);  
54.        ats.addAttribute(TextAttribute.FONT, font, 0, code.length());  
55.        AttributedCharacterIterator iter = ats.getIterator();  
56.        // 设置条形码(文字)的颜色为蓝色  
57.        g.setColor(Color.BLUE);  
58.        // 绘制条形码(文字)  
59.        g.drawString(iter, startX + (barCodeWidth - codeWidth) / 2, stringStartY);  
60.        // 更改图片横坐标开始位置,图片之间的空隙为条形码的宽度的一半  
61.        startX = startX + barCodeWidth / 2 + barCodeWidth;  
62.    }  
63.    g.dispose();  
64.    OutputStream os = new BufferedOutputStream(new FileOutputStream("/home/admin/codeList.png"));  
65.    ImageIO.write(img, "PNG", os);  
66.} 
-----------------------------------------------------------------------------------------------------------------
输出格式
private static final int HEIGHT_SPACE = 20;// 图片之间的间隔  
 
public static void main(String[] args) throws Exception {  
    List<String> codeList = new ArrayList<String>();  
    codeList.add("ABCD124645765");  
    codeList.add("ABCD12-4645-765");  
    codeList.add("ABCD12464-5765");  
    codeList.add("AB-CD1-246457-65");  
    createBarcodeImage(200, 100, codeList);  
    System.out.println("The image is created.");  
}  
 
/** 
 * Creates the barcode image. 
 *  
 * @param barCodeWidth 
 *            生成条形码的宽度 
 * @param barCodeHeight 
 *            生成条形码的高度 
 * @param codeList 
 *            要生成条形码的字符集合 
 *  
 * @throws Exception 
 *             the exception 
 */ 
public static void createBarcodeImage(int barCodeWidth, int barCodeHeight,  
        List<String> codeList) throws Exception {  
    // list不能为空  
    Assert.assertTrue("The list can not empty.", codeList.size() > 0);  
    // 图片宽度  
    int imageWidth = (barCodeWidth + barCodeWidth / 2) * codeList.size() + barCodeWidth / 2;  
    // 图片高度  
    int imageHeight = barCodeHeight + HEIGHT_SPACE * 2;  
    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 = barCodeWidth / 2;  
    // 图片纵坐标开始位置  
    int imageStartY = (imageHeight - barCodeHeight - stringHeight) / 2;  
    int stringStartY = imageStartY * 2 + barCodeHeight;// 条形码(文字)开始位置  
    for (String code : codeList) {  
        int codeWidth = (int) font.getStringBounds(code, fontRenderContext).getWidth();  
        barcodesetCode(code);  
        Image codeImg = barcodecreateAwtImage(Color.black, Color.white);  
        g.drawImage(codeImg, startX, imageStartY, barCodeWidth, barCodeHeight, Color.white, null);  
        // 为图片添加条形码(文字),位置为条形码图片的下部居中  
        AttributedString ats = new AttributedString(code);  
        ats.addAttribute(TextAttribute.FONT, font, 0, code.length());  
        AttributedCharacterIterator iter = ats.getIterator();  
        // 设置条形码(文字)的颜色为蓝色  
        g.setColor(Color.BLUE);  
        // 绘制条形码(文字)  
        g.drawString(iter, startX + (barCodeWidth - codeWidth) / 2, stringStartY);  
        // 更改图片横坐标开始位置,图片之间的空隙为条形码的宽度的一半  
        startX = startX + barCodeWidth / 2 + barCodeWidth;  
    }  
    g.dispose();  
    OutputStream os = new BufferedOutputStream(new FileOutputStream("/home/admin/codeList.png"));  
    ImageIO.write(img, "PNG", os);  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值