barnhill / barcode-java

Java Barcode Image Generation Library
MIT License
25 stars 14 forks source link

EAN13 standardized label broken #10

Open teicher opened 3 years ago

teicher commented 3 years ago

When creating a EAN13 with standardized label something is broken with the computation of the white boxes and the font heights. Especially is looks like setFont() is never called internally in this code flow and defaults to something

        Barcode b = new Barcode();
        b.setIncludeLabel(true);
        b.setLabelFont(new Font("Monospace", Font.PLAIN, 25));
        // EAN13 "standardized label tries to separate the digits and blank out the lower bounds of two
        // blocks in the EAN, to look like what we find on some products. however it fails to adjust the font
        // size and looks awful
        b.setStandardizeLabel(true); //change to false and it looks ok, but not "standardized"
        BufferedImage img = (BufferedImage) b.encode(Barcode.TYPE.EAN13, val);

Bildschirmfoto 2021-07-07 um 17 44 10 Bildschirmfoto 2021-07-07 um 17 45 06

version: 'com.pnuema.java:barcode:1.10'

teicher commented 3 years ago

updated my comment above. sorry for the empty commit. BTW as the Image is a BufferedImage anyway, that could be the return type of encode(), allowing to work with it with ImageIO and stuff. (or RenderedImage if you prefer an interface)

barnhill commented 1 year ago

I did notice this myself while rewriting the drawing in the .NET version of this lib. The labels are a huge pain and should be rewritten. I would love to see a pull request to help with this.