【问题标题】:Create a byte array barcode using B4j使用 B4j 创建字节数组条形码
【发布时间】:2016-05-02 06:28:00
【问题描述】:
@Override
    public String generateBrcodeForId(String Id) {
        BarcodeUtil util = BarcodeUtil.getInstance();
        BarcodeGenerator gen;
        ByteArrayOutputStream byteArrayOutputStream = null;
        try {
            gen = util.createBarcodeGenerator(buildCfg("code128"));
        OutputStream fout;
            fout = new FileOutputStream("code128.jpg");
              byteArrayOutputStream = new ByteArrayOutputStream();
        int resolution = 200;
        BitmapCanvasProvider canvas = new BitmapCanvasProvider(
                fout, "image/jpeg", resolution, BufferedImage.TYPE_BYTE_BINARY, false, 0);
        gen.generateBarcode(canvas, "12345678");
            canvas.finish();
        } catch (ConfigurationException | BarcodeException | IOException  e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }


     private static Configuration buildCfg(String type) {
            DefaultConfiguration cfg = new DefaultConfiguration("barcode");

            //Bar code type
            DefaultConfiguration child = new DefaultConfiguration(type);
              cfg.addChild(child);

              //Human readable text position
              DefaultConfiguration attr = new DefaultConfiguration("human-readable");
              DefaultConfiguration subAttr = new DefaultConfiguration("placement");
                subAttr.setValue("bottom");
                attr.addChild(subAttr);

                child.addChild(attr);
            return cfg;
          }

已经使用 Barcode4j 创建了一个条形码,这里它创建了一个图像 code128.jpg。我可以创建一个字节数组而不是在文件系统中创建一个图像并将其发送到 Web 服务客户端。

【问题讨论】:

    标签: java rest barcode barcode4j


    【解决方案1】:

    得到解决方案,使用 ByteArrayOutputStream 解决它

    @Override
        public byte[] generateBarcodeForId(String Id) {
            BarcodeUtil util = BarcodeUtil.getInstance();
            BarcodeGenerator gen;
            ByteArrayOutputStream bao = null;
            try {
                gen = util.createBarcodeGenerator(buildCfg("code128"));
            OutputStream fout;
            int resolution = 100;
            bao = new ByteArrayOutputStream();
            BitmapCanvasProvider canvas = new BitmapCanvasProvider(
                    bao, "image/jpeg", resolution, BufferedImage.TYPE_BYTE_BINARY, false, 0);
            gen.generateBarcode(canvas, Id);
            canvas.finish();
    
            } catch (ConfigurationException | BarcodeException | IOException  e) {
                e.printStackTrace();
            } finally {  
                try {
                    bao.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }  
            }  
    
    
            return bao.toByteArray();
        }
    
         private static Configuration buildCfg(String type) {
                DefaultConfiguration cfg = new DefaultConfiguration("barcode");
    
                //Bar code type
                DefaultConfiguration child = new DefaultConfiguration(type);
                  cfg.addChild(child);
    
                  //Human readable text position
                  DefaultConfiguration attr = new DefaultConfiguration("human-readable");
                  DefaultConfiguration subAttr = new DefaultConfiguration("placement");
                    subAttr.setValue("bottom");
                    attr.addChild(subAttr);
    
                    child.addChild(attr);
                return cfg;
              }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 2013-04-30
      • 1970-01-01
      相关资源
      最近更新 更多