Class BarcodeMSI

java.lang.Object
com.itextpdf.barcodes.Barcode1D
com.itextpdf.barcodes.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 Details

    • CHARS

      private static final String CHARS
      The index chars to BARS representing valid characters in the code
      See Also:
    • 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:
    • 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:
    • 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:
  • Constructor Details

    • BarcodeMSI

      public BarcodeMSI(PdfDocument document)
      Creates a new BarcodeMSI. To generate the font the PdfDocument.getDefaultFont() will be implicitly called. If you want to use this barcode in PDF/A documents, please consider using BarcodeMSI(PdfDocument, PdfFont).
      Parameters:
      document - The document to which the barcode will be added
    • 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 Details

    • 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 Image createAwtImage(Color foreground, 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(String text)
      Creates the bars.
      Parameters:
      text - the text to create the bars.
      Returns:
      the bars
    • getChecksum

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