Class BarcodeMSI


  • public class BarcodeMSI
    extends Barcode1D
    Implements the MSI Barcode. The code may only contain numeric characters. The getChecksum method returns the mod 10 checksum digit which is the most widely used for MSI barcodes.
    • Field Detail

      • CHARS

        private static final java.lang.String CHARS
        The index chars to BARS representing valid characters in the code
        See Also:
        Constant Field Values
      • BARS_START

        private static final byte[] BARS_START
        The sequence prepended to the start of all MSI Barcodes.
      • BARS_END

        private static final byte[] BARS_END
        The sequence appended to the end of all MSI Barcodes.
      • BARS

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

        private static final int BARS_PER_CHARACTER
        The number of individual bars either drawn or not drawn per character of the code
        See Also:
        Constant Field Values
      • BARS_FOR_START

        private static final int BARS_FOR_START
        The number of individual bars either drawn or not drawn for the start character in the BarcodeMSI.
        See Also:
        Constant Field Values
      • BARS_FOR_STOP

        private static final int BARS_FOR_STOP
        The number of individual bars either drawn or not drawn for the stop character in the BarcodeMSI.
        See Also:
        Constant Field Values
    • Constructor Detail

      • BarcodeMSI

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

      • 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
      • getBarsMSI

        public static byte[] getBarsMSI​(java.lang.String text)
        Creates the bars.
        Parameters:
        text - the text to create the bars.
        Returns:
        the bars
      • getChecksum

        public static int getChecksum​(java.lang.String text)
        Calculates the mod 10 checksum digit using the Luhn algorithm.
        Parameters:
        text - the barcode data
        Returns:
        the checksum digit