2016-05-02 44 views
1
@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サービスクライアントに送信する代わりにバイト配列を作成できますか?B4jを使用してバイト配列のバーコードを作成する

答えて

0

は、溶液を得た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; 
      } 
を使用してそれを解決しました
関連する問題