首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用B4j创建字节数组条码

使用B4j创建字节数组条码
EN

Stack Overflow用户
提问于 2016-05-02 14:28:00
回答 1查看 1.2K关注 0票数 1
代码语言:javascript
复制
@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创建了一个条形码,这里它创建了一个图像代码128.jpg。我是否可以创建一个字节数组,而不是在文件系统中创建一个映像,并将其发送到web服务客户端。

EN

回答 1

Stack Overflow用户

发布于 2016-05-03 13:29:30

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

代码语言:javascript
复制
@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;
          }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36976175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档