0

Java バージョン 1.5 で動作するコードがありましたが、最近 Java バージョンを 1.6 に更新したところ、アプリケーションがスキャン不能なバーコードを生成していました。

以前のバージョンと比較すると、バーコードが若干異なります。一部の線の太さも変更

助けてください

以下のコード::

    String str = (String)TSFDataChannel.getValue(httpservletrequest,"BC");

    File file = new File("mybarcode_"+Helpers.stripGarbage(str)+".png");
    OutputStream out = new FileOutputStream(file);

    Barcode barcode;
    try {

        Code128Bean bean = new Code128Bean();

        final int dpi = 500;

        //Configure the barcode generator
        bean.setModuleWidth(UnitConv.in2mm(1.0f / dpi)); //makes the narrow bar
        bean.setFontSize(0); //width exactly one pixel

        bean.doQuietZone(false);
        //bean.setVerticalQuietZone(UnitConv.pt2mm(3)); 
        bean.setHeight(1.5); 
        BitmapCanvasProvider canvas = new BitmapCanvasProvider(
        out,"image/png", dpi, BufferedImage.TYPE_BYTE_BINARY, true, 0); 

        //Generate the barcode
        bean.generateBarcode(canvas, str);

        //Signal end of generation
        canvas.finish();

        httpservletresponse.setContentType("APPLICATION/OCTET-STREAM");
        String disHeader = "Attachment;Filename=mybarcode_"+str+".png" ;
        httpservletresponse.setHeader("Content-Disposition", disHeader);

        FileInputStream fileInputStream = new FileInputStream(file);
        int i;
        while ((i=fileInputStream.read())!=-1)
        {
            httpservletresponse.getOutputStream().write(i);
        }

        httpservletresponse.getOutputStream().flush();
        httpservletresponse.getOutputStream().close();
        fileInputStream.close();

    } catch (Exception e1) {
        e1.printStackTrace();
    } finally{
        file.delete();
        out.close();
    }
4

0 に答える 0