Class Barcode39


  • public class Barcode39
    extends Barcode1D
    This class represents the barcode Code 39.

    Code 39 is a variable length, discrete barcode symbology defined in ISO/IEC 16388:2007.

    The Code 39 specification defines 43 characters, consisting of uppercase letters (A through Z), numeric digits (0 through 9) and a number of special characters (-, ., $, /, +, %, and space). An additional character (denoted '*') is used for both start and stop delimiters. Each character is composed of nine elements: five bars and four spaces.

    • Field Detail

      • BARS

        private static final byte[][] BARS
        The bars to generate the code.
      • CHARS

        private static final java.lang.String CHARS
        The index chars to BARS, symbol * use only start and stop characters, the * character will not appear in the input data.
        See Also:
        Constant Field Values
      • EXTENDED

        private static final java.lang.String EXTENDED
        The character combinations to make the code 39 extended.
        See Also:
        Constant Field Values
    • Constructor Detail

      • Barcode39

        public Barcode39​(PdfDocument document,
                         PdfFont font)
        Creates a new Barcode39.
        Parameters:
        document - The document to which the barcode will be added
        font - The font to use
    • Method Detail

      • getBarsCode39

        public static byte[] getBarsCode39​(java.lang.String text)
        Creates the bars.
        Parameters:
        text - the text to create the bars. This text does not include the start and stop characters
        Returns:
        the bars
      • getCode39Ex

        public static java.lang.String getCode39Ex​(java.lang.String text)
        Converts the extended text into a normal, escaped text, ready to generate bars.
        Parameters:
        text - the extended text
        Returns:
        the escaped text
      • getChecksum

        static char getChecksum​(java.lang.String text)
        Calculates the checksum.
        Parameters:
        text - the text
        Returns:
        the checksum
      • getBarcodeSize

        public Rectangle getBarcodeSize()
        Gets the maximum area that the barcode and the text, if any, will occupy. The lower left corner is always (0, 0).
        Specified by:
        getBarcodeSize in class Barcode1D
        Returns:
        the size the barcode occupies.
      • placeBarcode

        public Rectangle placeBarcode​(PdfCanvas canvas,
                                      Color barColor,
                                      Color textColor)
        Places the barcode in a PdfCanvas. The barcode is always placed at coordinates (0, 0). Use the translation matrix to move it elsewhere.

        The bars and text are written in the following colors:

        barColor textColor Result
        null null bars and text painted with current fill color
        barColor null bars and text painted with barColor
        null textColor bars painted with current color
        text painted with textColor
        barColor textColor bars painted with barColor
        text painted with textColor
        Specified by:
        placeBarcode in class Barcode1D
        Parameters:
        canvas - the PdfCanvas where the barcode will be placed
        barColor - the color of the bars. It can be null
        textColor - the color of the text. It can be null
        Returns:
        the dimensions the barcode occupies
      • createAwtImage

        public java.awt.Image createAwtImage​(java.awt.Color foreground,
                                             java.awt.Color background)
        Creates a java.awt.Image. This image only contains the bars without any text.
        Specified by:
        createAwtImage in class Barcode1D
        Parameters:
        foreground - the color of the bars
        background - the color of the background
        Returns:
        the image