精华内容
下载资源
问答
  • java生成条形码

    万次阅读 2018-10-29 10:54:28
    第一种:有缺点:在条形码下面不能加上汉字 转载:https://blog.csdn.net/qq_36410795/article/details/79052956 <!--条形码--> <dependency> <groupId>...
    第一种:有缺点:在条形码下面不能加上汉字
    转载:https://blog.csdn.net/qq_36410795/article/details/79052956
    <!--条形码-->
    <dependency>
       <groupId>net.sf.barcode4j</groupId>
       <artifactId>barcode4j-light</artifactId>
       <version>2.0</version>
    </dependency>
    
    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import org.krysalis.barcode4j.impl.code39.Code39Bean;
    import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;
    import org.krysalis.barcode4j.tools.UnitConv;
    import org.springframework.util.StringUtils;
    
    /**
     * 条形码工具类
     *
     * @author tangzz
     * @createDate 2015年9月17日
     *
     */
    public class BarcodeUtil {
    
        /**
         * 生成文件
         *
         * @param msg
         * @param path
         * @return
         */
        public static File generateFile(String msg, String path) {
            File file = new File(path);
            try {
                generate(msg, new FileOutputStream(file));
            } catch (FileNotFoundException e) {
                throw new RuntimeException(e);
            }
            return file;
        }
    
        /**
         * 生成字节
         *
         * @param msg
         * @return
         */
        public static byte[] generate(String msg) {
            ByteArrayOutputStream ous = new ByteArrayOutputStream();
            generate(msg, ous);
            return ous.toByteArray();
        }
    
        /**
         * 生成到流
         *
         * @param msg
         * @param ous
         */
        public static void generate(String msg, OutputStream ous) {
            if (StringUtils.isEmpty(msg) || ous == null) {
                return;
            }
    
            Code39Bean bean = new Code39Bean();
    
            // 精细度
            final int dpi = 150;
            // module宽度
            final double moduleWidth = UnitConv.in2mm(1.0f / dpi);
    
            // 配置对象
            bean.setModuleWidth(moduleWidth);
            bean.setWideFactor(3);
            bean.doQuietZone(false);
    
            String format = "image/png";
            try {
    
                // 输出到流
                BitmapCanvasProvider canvas = new BitmapCanvasProvider(ous, format, dpi,
                        BufferedImage.TYPE_BYTE_BINARY, false, 0);
    
                // 生成条形码
                bean.generateBarcode(canvas, msg);
    
                // 结束绘制
                canvas.finish();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    
        public static void main(String[] args) {
            String msg = "123456789";
    //        String path = "barcode.png";
            String path = "G:/Image/barcode.png";
            generateFile(msg, path);
            System.out.println("条形码生成=="+generateFile(msg, path));
        }
    }
    

    第二种:可以在条形码下方加上汉字:

    参考:https://blog.csdn.net/fxbin123/article/details/83515803

    1、添加maven依赖
            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>core</artifactId>
                <version>3.3.3</version>
            </dependency>
    2.

    package com.shengquan.holywater.modules.moju.utils;
    import com.baomidou.mybatisplus.toolkit.StringUtils;
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.WriterException;
    
    import com.google.zxing.client.j2se.MatrixToImageWriter;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.oned.Code128Writer;
    
    
    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @description: 谷歌条形码打印
     * @author: Administrator
     * @date: 2019-03-07 14:46
     */
    public class GoogleBarCodeUtils {
        /** 条形码宽度 */
        private static final int WIDTH = 300;
    
        /** 条形码高度 */
        private static final int HEIGHT = 50;
    
        /** 加文字 条形码 */
        private static final int WORDHEIGHT = 75;
        /**
         * 设置 条形码参数
         */
        private static Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>() {
            private static final long serialVersionUID = 1L;
            {
                // 设置编码方式
                put(EncodeHintType.CHARACTER_SET, "utf-8");
            }
        };
        /**
         * 生成 图片缓冲
         * @author fxbin
         * @param vaNumber  VA 码
         * @return 返回BufferedImage
         */
        public static BufferedImage getBarCode(String vaNumber){
            try {
                Code128Writer writer = new Code128Writer();
                // 编码内容, 编码类型, 宽度, 高度, 设置参数
                BitMatrix bitMatrix = writer.encode(vaNumber, BarcodeFormat.CODE_128, WIDTH, HEIGHT, hints);
                return MatrixToImageWriter.toBufferedImage(bitMatrix);
            } catch (WriterException e) {
                e.printStackTrace();
            }
            return null;
        }
        /**
         * 把带logo的二维码下面加上文字
         * @author fxbin
         * @param image  条形码图片
         * @param words  文字
         * @return 返回BufferedImage
         */
        public static BufferedImage insertWords(BufferedImage image, String words){
            // 新的图片,把带logo的二维码下面加上文字
            if (StringUtils.isNotEmpty(words)) {
    
                BufferedImage outImage = new BufferedImage(WIDTH, WORDHEIGHT, BufferedImage.TYPE_INT_RGB);
    
                Graphics2D g2d = outImage.createGraphics();
    
                // 抗锯齿
                setGraphics2D(g2d);
                // 设置白色
                setColorWhite(g2d);
    
                // 画条形码到新的面板
                g2d.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null);
                // 画文字到新的面板
                Color color=new Color(0, 0, 0);
                g2d.setColor(color);
                // 字体、字型、字号
                g2d.setFont(new Font("微软雅黑", Font.PLAIN, 18));
                //文字长度
                int strWidth = g2d.getFontMetrics().stringWidth(words);
                //总长度减去文字长度的一半  (居中显示)
                int wordStartX=(WIDTH - strWidth) / 2;
                //height + (outImage.getHeight() - height) / 2 + 12
                int wordStartY=HEIGHT+20;
    
                // 画文字
                g2d.drawString(words, wordStartX, wordStartY);
                g2d.dispose();
                outImage.flush();
                return outImage;
            }
            return null;
        }
    
        /**
         * 设置 Graphics2D 属性  (抗锯齿)
         * @param g2d  Graphics2D提供对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制
         */
        private static void setGraphics2D(Graphics2D g2d){
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);
            Stroke s = new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER);
            g2d.setStroke(s);
        }
    
        /**
         * 设置背景为白色
         * @param g2d Graphics2D提供对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制
         */
        private static void setColorWhite(Graphics2D g2d){
            g2d.setColor(Color.WHITE);
            //填充整个屏幕
            g2d.fillRect(0,0,600,600);
            //设置笔刷
            g2d.setColor(Color.BLACK);
        }
        public static void main(String[] args) throws IOException {
    //        BufferedImage image = insertWords(getBarCode("123456789"), "123456789");
    //        A80/90R8A(8A侧通孔)
            BufferedImage image = insertWords(getBarCode("A80/90R8A8A"), "A80/90R8A(8A侧通孔)");
            ImageIO.write(image, "jpg", new File("G:/Images/barcode.png"));
        }
    
    
    }
    

    3.程序包com.google.zxing.client.j2se不存在
    4.com.google.zxing.client.j2se包下载地址:

    https://pan.baidu.com/s/1K60wSnLmbch63QyUbimHfA

     提取码:junh

    5.最后结果:

     

    展开全文
  • java生产条形码

    2018-04-18 15:40:00
    准备:jbarcode-0.2.8.jar,下载地址:jbarcode-0.2.8.zip jsp: <img src="<%=basePath%>barcode/showBarCode" alt="" style="width: 200px; height: 150px;...import java.io.BufferedOu...

    准备:jbarcode-0.2.8.jar,下载地址:jbarcode-0.2.8.zip

    jsp:

    <img src="<%=basePath%>barcode/showBarCode" alt="" style="width: 200px; height: 150px;">

    controller

    import java.io.BufferedOutputStream;
    import java.io.ByteArrayInputStream;
    import java.io.InputStream;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import util.OneBarcodeUtil;
    
    @Controller
    @RequestMapping("/barcode")
    public class BarcodeController {
        @RequestMapping("/")
        public String index(){
            return "barcode";
        }
        @RequestMapping("/showBarCode")
        public void showIMG(HttpServletRequest req,HttpServletResponse resp) throws Exception{
            OneBarcodeUtil obu = new OneBarcodeUtil();
            byte[] bs = obu.createBarcodeDefault("123123123");//这里是条码号
             InputStream in = new ByteArrayInputStream(bs);// 业务逻辑取得图片的byte[]
             BufferedOutputStream bout = new BufferedOutputStream(resp.getOutputStream()); 
             //从输入流到输出流  
            try {    
              //  byte b[] = new byte[1024];    
                int len = in.read(bs);    
                while (len > 0) {    
                    bout.write(bs, 0, len);    
                    len = in.read(bs);    
                }    
            } catch (Exception e) {    
                throw e;     
            } finally {    
                bout.close();    
                in.close();    
            }  
        }
    }
    View Code

    工具类

    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.lang.reflect.Constructor;
    
    import org.jbarcode.JBarcode;
    import org.jbarcode.encode.BarcodeEncoder;
    import org.jbarcode.encode.Code39Encoder;
    import org.jbarcode.paint.BaseLineTextPainter;
    import org.jbarcode.paint.EAN13TextPainter;
    import org.jbarcode.paint.WideRatioCodedPainter;
    import org.jbarcode.paint.WidthCodedPainter;
    import org.jbarcode.util.ImageUtil;
    
    public class OneBarcodeUtil { 
    
        
           
        /** 
         * 生成一维码 
         * @param value 值 
         * @return 
         */  
        public static byte[] createBarcodeDefault(String value){  
            return createBarcode(Code39Encoder.class,value,false);  
        }  
        
        
      //产生一维码图片  
        public static byte[] createBarcode(Class<?> clazz,String value,boolean checkDigit){  
              try{  
                  JBarcode localJBarcode = new JBarcode(getInstance(clazz),WidthCodedPainter.getInstance(),EAN13TextPainter.getInstance());    
                  localJBarcode.setPainter(WideRatioCodedPainter.getInstance());    
                  localJBarcode.setTextPainter(BaseLineTextPainter.getInstance());    
                  localJBarcode.setCheckDigit(checkDigit);  
                  localJBarcode.setShowCheckDigit(checkDigit);  
                  return getBytes(localJBarcode.createBarcode(value));    
              }catch (Exception e) {  
                e.printStackTrace();  
                return null;  
            }  
        }  
        
        
        //获取单例的对象  
        private static BarcodeEncoder getInstance(Class<?> clazz) throws Exception{  
            Constructor<?>[] constructors=clazz.getDeclaredConstructors();  
            Constructor<?> privateConstructor = constructors[0];  
            privateConstructor.setAccessible(true);  
            return (BarcodeEncoder)privateConstructor.newInstance();  
              
        }  
          
        //获取图片字节码数组  
        private static byte[] getBytes(BufferedImage paramBufferedImage) throws IOException{    
              return ImageUtil.encode(paramBufferedImage,"jpeg", 96, 96);  
        }    
        
        
    }
    View Code

     启动项目访问:http://localhost:8080/wxPublic/barcode/

    生产条形码:

     

    转载于:https://www.cnblogs.com/yanan7890/p/8875300.html

    展开全文
  • Java生成条形码图片到本地 直接Ctrl C/V可用 import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io....

    直接Ctrl C/V可用
    maven引入barcode4j

    <dependency>
    	<groupId>net.sf.barcode4j</groupId>
    	<artifactId>barcode4j-light</artifactId>
    	<version>2.0</version>
    </dependency>
    

    java代码

    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
     
    import org.apache.commons.lang.StringUtils;
    import org.krysalis.barcode4j.impl.code128.Code128Bean;
    import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;
    import org.krysalis.barcode4j.tools.UnitConv;
     
    /**
     * 生成条形码工具(条形码)
     *
     * @author ziho
     * @createDate 2018年10月09日
     *
     */
    public class BarcodeUtil {
     
        /**
         * 生成文件
         *
         * @param msg
         * @param path
         * @return
         */
        public static File generateFile(String msg, String path) {
            File file = new File(path);
            try {
                generate(msg, new FileOutputStream(file));
            } catch (FileNotFoundException e) {
                throw new RuntimeException(e);
            }
            return file;
        }
     
        /**
         * 生成字节
         *
         * @param msg
         * @return
         */
        public static byte[] generate(String msg) {
            ByteArrayOutputStream ous = new ByteArrayOutputStream();
            generate(msg, ous);
            return ous.toByteArray();
        }
     
        /**
         * 生成到流
         *
         * @param msg
         * @param ous
         */
        public static void generate(String msg, OutputStream ous) {
            if (StringUtils.isEmpty(msg) || ous == null) {
                return;
            }
     
            Code128Bean bean = new Code128Bean();
     
            // 精细度
            final int dpi = 50;
            // module宽度
            final double moduleWidth = UnitConv.in2mm(1.2f / dpi);
     
            // 配置对象
            bean.setModuleWidth(moduleWidth);
            //bean.setWideFactor(1);
            bean.doQuietZone(false);
     
            String format = "image/png";
            try {
     
                // 输出到流
                BitmapCanvasProvider canvas = new BitmapCanvasProvider(ous, format, dpi,
                        BufferedImage.TYPE_BYTE_BINARY, false, 0);
     
                // 生成条形码
                bean.generateBarcode(canvas, msg);
     
                // 结束绘制
                canvas.finish();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
     
        public static void main(String[] args) {
            String msg = "BJBDN201811280001";
            String path = "C:/code.png";
            generateFile(msg, path);
        }
    }
    
    
    展开全文
  • Java三种生成条形码的源码 1、用barcode4j方式生成 2、用jbarcode方式生产成 3、google-zxing方式生成,但该方式较不方便,添加条形码数字叫复杂
  • Java 原生库生成Code128C编码的条形码的工具类,根据http://blog.csdn.net/susu_139/article/details/41008433整理而成
  • java生成base64条形码

    2020-08-28 08:28:28
    java生成base64条形码1、引入需要的jar包2、编写一个简单的工具类 1、引入需要的jar包 本次使用的Google提供的MatrixToImageWriter类,首先在pom.xml文件中引入。 <dependency> <groupId>...

    1、引入需要的jar包

    本次使用的Google提供的MatrixToImageWriter类,首先在pom.xml文件中引入。

    <dependency>
           <groupId>com.google.zxing</groupId>
           <artifactId>javase</artifactId>
           <version>3.3.3</version>
    </dependency>
    

    2、编写一个简单的工具类

    向工具类中传入想要的条形码“编码”、“宽度”、“高度”,工具类产生条形码图片后,将图片转成base64码返回给前端。

    package web.com;
    
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.client.j2se.MatrixToImageWriter;
    import com.google.zxing.common.BitMatrix;
    import sun.misc.BASE64Encoder;
    
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    /**
     * @author cxt
     * @date 2020/8/27
     */
    public class BarCode {
    
        /**
         * 给前端产生一个条形码
         *
         * @param number 编码
         * @param width  宽度
         * @param height 高度
         */
        public static String getCode(String number, Integer width, Integer height) {
            // 生成条形码
            BufferedImage image = getBarCode(number, width, height);
            // 使用流的方式
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            try {
                ImageIO.write(image, "png", out);
            } catch (Exception e) {
                // log.error("generate code error! error message:{}", "出现问题!");
                e.printStackTrace();
            }
            // 将流转成数组
            byte[] bytes = out.toByteArray();
            BASE64Encoder encoder = new BASE64Encoder();
            // 把生成的编码返回去
            return "data:image/png;base64," + encoder.encodeBuffer(bytes).trim();
        }
    
        /**
         * 产生条形码的方法
         *
         * @param number 编码
         * @param width  宽度
         * @param height 高度
         */
        public static BufferedImage getBarCode(String number, Integer width, Integer height) {
            try {
                BitMatrix bitMatrix = new MultiFormatWriter().encode(number, BarcodeFormat.CODE_128, width, height);
                return MatrixToImageWriter.toBufferedImage(bitMatrix);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * 调用测试
         */
        public static void main(String[] args) {
            String code = getCode("1120220202", 50, 50);
            System.out.println(code);
        }
    }
    

    3、结果

    在这里插入图片描述将产生的data:image/png;base64,……放到<img 标签中的“ src = ‘data:image/png;base64,……’ ” 结果如下。
    在这里插入图片描述
    使用QQ扫一扫既可以得到以下结果:
    在这里插入图片描述

    展开全文
  • java生成条形码可使用的方式:barcode4j、zxing 本文介绍使用zxing来生成条形码 zxing 是由google开源的1D/2D编解码类库。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端...
  • java生成base64图片条形码

    千次阅读 2019-03-31 15:05:06
    java生成条形码工具类: import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import javax.imageio.ImageIO; import org.jbarcode.JBarcode; import org.jbarcode.encode.Code128Encoder;...
  • 包括条形码操作工具、二维码操作、图片验证码工具、动态密码工具、雪花算法id工具、签名工具、poi导出、json转换、文件操作、分页、日期处理、jdbc、大数运算及格式化、gzip压缩、http 结构说明如下: ...
  • Java 生产条形码代码

    2016-11-29 19:40:19
    //这里我们用作图书条码  String str = "693320970002" ;  BufferedImage localBufferedImage = localJBarcode .createBarcode( str );  saveToGIF( localBufferedImage , "EAN13.gif" );   ...
  • java代码实现生成二维码和条形码

    千次阅读 2017-05-20 16:30:47
    在做开发过程中,我们常常会需要使用Java代码来生成一些二维码图片和条形码图片,例如: 新闻页面,商品页面,货品的条码等等。今天就来简单介绍下如何使用Java代码生成开发中需求二维码图片和条形码图片。  1...
  • Java生成和读取条形码

    千次阅读 2020-04-23 02:31:11
    条形码是一种机器可读的可视化数据表示形式。 数据通常描述带有条形码的物体的某些内容。 条码已广泛应用于商品流通,图书管理,邮政管理,银行系统等许多领域。 In this blog post, I am going to introduce how to...
  • ZXing是一个开源Java类库用于解析多种格式的条形码和二维码. 官网:http://code.google.com/p/zxing/ MatrixToImageWriter类辅助生成二维码,该类是由Google提供的,我们可以把它复制到自己的项目中使用: ...
  • java 批量生成条形码,打包zip(springboot) pom.xml <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</...
  • ZXing(“zebra crossing”)是一个用Java实现的开源,多格式1D / 2D条形码图像处理库,具有其他语言的端口。 如果不想看源码分析,想直接看代码请跳到最后!!! 常用的Code 128 码与 Code 39 码比较: Code ...
  • 日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
  • Java生成条形码code128 亲测 有效

    千次阅读 2020-05-13 22:43:26
    生成code 128条形码工具类 maven依赖 ''' <dependency> <groupId>net.sf.barcode4j</groupId> <artifactId>barcode4j</artifactId> <version>2.1</version> </...
  • 条形码(Barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常用于标示物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等信息,...
  • Java生成条形码code128

    万次阅读 2018-08-13 21:45:20
    生成code 128条形码工具类 maven依赖 <!-- https://mvnrepository.com/artifact/net.sf.barcode4j/barcode4j --> <dependency> <groupId>net.sf.barcode4j</groupId> <artifactId&...
  • 当显示文档时,它将显示条形码(使用字体绘制),并具有将条形码值保持在文本内容中的附加优势。 这时候需要在运行的同一文件夹中的free3of9.ttf文件,该文件是TrueType Code39字体,示例程序将此字体嵌入到PDF中,...
  • 最近研究zxing生成二维码、条形码,简单写个栗子。为什么不用前端qrcode.js呢,因为它生产的二维码浏览器兼容性不好,不兼容IE7/8。 显示效果,中间logo是百度随便找的。 前端index.jsp Created by ...
  • 管理后台通过查询并生成多张条码并一起打印出来 思路 思路一 思路二 代码编写 maven pom文件 方法一 步骤一:创建barcode 条码文件 步骤二:将创建的barcode 条码文件放入pdf文件中 测试代码 方法二: ...
  • 生成条形码需要ja坐标: <!--生成条形码--> <dependency> <groupId>net.sf.barcode4j</groupId> <artifactId>barcode4j-light</artifactId> <version>2.0</...
  • java zxing二维码(可带logo)、条形码生成解析
  • 我用java,barcode4j生产条形码 2个条形码1个是000XXJ007898 还有1个是1P2T83X 为什么后面一个可以扫出来,但是前面一个不行 然后 和前面相似的代码都扫不出来,我随便打一个字符串IAMSTEVEN也可以扫出来 谢谢啦
  • package com.iskyinfo.shinytel.test; import java.awt.Color; import java.awt.Graphics;...import java.awt.image.BufferedImage;...import java.io.File;...import java.io.FileOutputStream;...import java.io
  • 以下为java方式实现条码打印,供参考,一般可用于本地调试。 1、js和applet的实现方式见另一篇文章。 2、TSC applet和js打印测试包(包含打印机驱动、打印插件、applet和js调试代码),...
  • java打印条形码Code128C

    2018-03-06 16:23:00
    生成编码类型为Code128C的条形码javaCODE: package test; import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,878
精华内容 1,151
关键字:

java生产条形码

java 订阅