Class BarcodeDatamatrix

java.lang.Object
com.lowagie.text.pdf.BarcodeDatamatrix

public class BarcodeDatamatrix extends Object
A DataMatrix 2D barcode generator.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    private static class 
     
    (package private) static class 
     
    (package private) static class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    ASCII encodation.
    static final int
    The best encodation will be used.
    static final int
    Binary encodation.
    static final int
    C40 encodation.
    static final int
    EDIFACT encodation.
    static final int
    An error while parsing an extension.
    static final int
    The dimensions given for the symbol are illegal.
    static final int
    The text is too big for the symbology capabilities.
    static final int
    Allows extensions to be embedded at the start of the text.
    static final int
    No error.
    static final int
    No encodation needed.
    static final int
    Doesn't generate the image but returns all the other information.
    static final int
    TEXT encodation.
    static final int
    X21 encodation.
    private static final BarcodeDatamatrix.DmParams[]
     
    private int
     
    private int
     
    private byte[]
     
    private int
     
    private short[]
     
    private int
     
    private int
     
    private static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates an instance of this class.
  • Method Summary

    Modifier and Type
    Method
    Description
    private static int
    asciiEncodation(byte[] text, int textOffset, int textLength, byte[] data, int dataOffset, int dataLength)
     
    private static int
    b256Encodation(byte[] text, int textOffset, int textLength, byte[] data, int dataOffset, int dataLength)
     
    private static int
    C40OrTextEncodation(byte[] text, int textOffset, int textLength, byte[] data, int dataOffset, int dataLength, boolean c40)
     
    createAwtImage(Color foreground, Color background)
    Creates a java.awt.Image.
    Gets an Image with the barcode.
    private void
    draw(byte[] data, int dataSize, BarcodeDatamatrix.DmParams dm)
     
    private static int
    EdifactEncodation(byte[] text, int textOffset, int textLength, byte[] data, int dataOffset, int dataLength)
     
    int
    generate(byte[] text, int textOffset, int textSize)
    Creates a barcode.
    int
    Creates a barcode.
    private static int
    getEncodation(byte[] text, int textOffset, int textSize, byte[] data, int dataOffset, int dataSize, int options, boolean firstMatch)
     
    int
    Gets the height of the barcode.
    byte[]
    Gets the generated image.
    private static int
    getNumber(byte[] text, int ptrIn, int n)
     
    int
    Gets the barcode options.
    int
    Gets the width of the barcode.
    int
    Gets the whitespace border around the barcode.
    private static boolean
    isDigit(int c)
     
    private static void
    makePadding(byte[] data, int position, int count)
     
    private int
    processExtensions(byte[] text, int textOffset, int textSize, byte[] data)
     
    private void
    setBit(int x, int y, int xByte)
     
    void
    setHeight(int height)
    Sets the height of the barcode.
    void
    setOptions(int options)
    Sets the options for the barcode generation.
    void
    setWidth(int width)
    Sets the width of the barcode.
    void
    setWs(int ws)
    Sets the whitespace border around the barcode.
    private static int
    X12Encodation(byte[] text, int textOffset, int textLength, byte[] data, int dataOffset, int dataLength)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • DM_NO_ERROR

      public static final int DM_NO_ERROR
      No error.
      See Also:
    • DM_ERROR_TEXT_TOO_BIG

      public static final int DM_ERROR_TEXT_TOO_BIG
      The text is too big for the symbology capabilities.
      See Also:
    • DM_ERROR_INVALID_SQUARE

      public static final int DM_ERROR_INVALID_SQUARE
      The dimensions given for the symbol are illegal.
      See Also:
    • DM_ERROR_EXTENSION

      public static final int DM_ERROR_EXTENSION
      An error while parsing an extension.
      See Also:
    • DM_AUTO

      public static final int DM_AUTO
      The best encodation will be used.
      See Also:
    • DM_ASCII

      public static final int DM_ASCII
      ASCII encodation.
      See Also:
    • DM_C40

      public static final int DM_C40
      C40 encodation.
      See Also:
    • DM_TEXT

      public static final int DM_TEXT
      TEXT encodation.
      See Also:
    • DM_B256

      public static final int DM_B256
      Binary encodation.
      See Also:
    • DM_X21

      public static final int DM_X21
      X21 encodation.
      See Also:
    • DM_EDIFACT

      public static final int DM_EDIFACT
      EDIFACT encodation.
      See Also:
    • DM_RAW

      public static final int DM_RAW
      No encodation needed. The bytes provided are already encoded.
      See Also:
    • DM_EXTENSION

      public static final int DM_EXTENSION
      Allows extensions to be embedded at the start of the text.
      See Also:
    • DM_TEST

      public static final int DM_TEST
      Doesn't generate the image but returns all the other information.
      See Also:
    • dmSizes

      private static final BarcodeDatamatrix.DmParams[] dmSizes
    • x12

      private static final String x12
      See Also:
    • extOut

      private int extOut
    • place

      private short[] place
    • image

      private byte[] image
    • height

      private int height
    • width

      private int width
    • ws

      private int ws
    • options

      private int options
  • Constructor Details

    • BarcodeDatamatrix

      public BarcodeDatamatrix()
      Creates an instance of this class.
  • Method Details

    • makePadding

      private static void makePadding(byte[] data, int position, int count)
    • isDigit

      private static boolean isDigit(int c)
    • asciiEncodation

      private static int asciiEncodation(byte[] text, int textOffset, int textLength, byte[] data, int dataOffset, int dataLength)
    • b256Encodation

      private static int b256Encodation(byte[] text, int textOffset, int textLength, byte[] data, int dataOffset, int dataLength)
    • X12Encodation

      private static int X12Encodation(byte[] text, int textOffset, int textLength, byte[] data, int dataOffset, int dataLength)
    • EdifactEncodation

      private static int EdifactEncodation(byte[] text, int textOffset, int textLength, byte[] data, int dataOffset, int dataLength)
    • C40OrTextEncodation

      private static int C40OrTextEncodation(byte[] text, int textOffset, int textLength, byte[] data, int dataOffset, int dataLength, boolean c40)
    • getEncodation

      private static int getEncodation(byte[] text, int textOffset, int textSize, byte[] data, int dataOffset, int dataSize, int options, boolean firstMatch)
    • getNumber

      private static int getNumber(byte[] text, int ptrIn, int n)
    • setBit

      private void setBit(int x, int y, int xByte)
    • draw

      private void draw(byte[] data, int dataSize, BarcodeDatamatrix.DmParams dm)
    • processExtensions

      private int processExtensions(byte[] text, int textOffset, int textSize, byte[] data)
    • generate

      public int generate(String text) throws UnsupportedEncodingException
      Creates a barcode. The String is interpreted with the ISO-8859-1 encoding
      Parameters:
      text - the text
      Returns:
      the status of the generation. It can be one of this values:

      DM_NO_ERROR - no error.
      DM_ERROR_TEXT_TOO_BIG - the text is too big for the symbology capabilities.
      DM_ERROR_INVALID_SQUARE - the dimensions given for the symbol are illegal.
      DM_ERROR_EXTENSION - an error was while parsing an extension.

      Throws:
      UnsupportedEncodingException - on error
    • generate

      public int generate(byte[] text, int textOffset, int textSize)
      Creates a barcode.
      Parameters:
      text - the text
      textOffset - the offset to the start of the text
      textSize - the text size
      Returns:
      the status of the generation. It can be one of this values:

      DM_NO_ERROR - no error.
      DM_ERROR_TEXT_TOO_BIG - the text is too big for the symbology capabilities.
      DM_ERROR_INVALID_SQUARE - the dimensions given for the symbol are illegal.
      DM_ERROR_EXTENSION - an error was while parsing an extension.

    • createImage

      public Image createImage() throws BadElementException
      Gets an Image with the barcode. A successful call to the method generate() before calling this method is required.
      Returns:
      the barcode Image
      Throws:
      BadElementException - on error
    • createAwtImage

      public Image createAwtImage(Color foreground, Color background)
      Creates a java.awt.Image. A successful call to the method generate() before calling this method is required.
      Parameters:
      foreground - the color of the bars
      background - the color of the background
      Returns:
      the image
    • getImage

      public byte[] getImage()
      Gets the generated image. The image is represented as a stream of bytes, each byte representing 8 pixels, 0 for white and 1 for black, with the high-order bit of each byte first. Each row is aligned at byte boundaries. The dimensions of the image are defined by height and width plus 2 * ws.
      Returns:
      the generated image
    • getHeight

      public int getHeight()
      Gets the height of the barcode. Will contain the real height used after a successful call to generate(). This height doesn't include the whitespace border, if any.
      Returns:
      the height of the barcode
    • setHeight

      public void setHeight(int height)
      Sets the height of the barcode. If the height is zero it will be calculated. This height doesn't include the whitespace border, if any.

      The allowed dimensions are (height, width):

      10, 10
      12, 12
      8, 18
      14, 14
      8, 32
      16, 16
      12, 26
      18, 18
      20, 20
      12, 36
      22, 22
      16, 36
      24, 24
      26, 26
      16, 48
      32, 32
      36, 36
      40, 40
      44, 44
      48, 48
      52, 52
      64, 64
      72, 72
      80, 80
      88, 88
      96, 96
      104, 104
      120, 120
      132, 132
      144, 144

      Parameters:
      height - the height of the barcode
    • getWidth

      public int getWidth()
      Gets the width of the barcode. Will contain the real width used after a successful call to generate(). This width doesn't include the whitespace border, if any.
      Returns:
      the width of the barcode
    • setWidth

      public void setWidth(int width)
      Sets the width of the barcode. If the width is zero it will be calculated. This width doesn't include the whitespace border, if any.

      The allowed dimensions are (height, width):

      10, 10
      12, 12
      8, 18
      14, 14
      8, 32
      16, 16
      12, 26
      18, 18
      20, 20
      12, 36
      22, 22
      16, 36
      24, 24
      26, 26
      16, 48
      32, 32
      36, 36
      40, 40
      44, 44
      48, 48
      52, 52
      64, 64
      72, 72
      80, 80
      88, 88
      96, 96
      104, 104
      120, 120
      132, 132
      144, 144

      Parameters:
      width - the width of the barcode
    • getWs

      public int getWs()
      Gets the whitespace border around the barcode.
      Returns:
      the whitespace border around the barcode
    • setWs

      public void setWs(int ws)
      Sets the whitespace border around the barcode.
      Parameters:
      ws - the whitespace border around the barcode
    • getOptions

      public int getOptions()
      Gets the barcode options.
      Returns:
      the barcode options
    • setOptions

      public void setOptions(int options)
      Sets the options for the barcode generation. The options can be:

      One of:
      DM_AUTO - the best encodation will be used
      DM_ASCII - ASCII encodation
      DM_C40 - C40 encodation
      DM_TEXT - TEXT encodation
      DM_B256 - binary encodation
      DM_X21 - X21 encodation
      DM_EDIFACT - EDIFACT encodation
      DM_RAW - no encodation. The bytes provided are already encoded and will be added directly to the barcode, using padding if needed. It assumes that the encodation state is left at ASCII after the last byte.

      One of:
      DM_EXTENSION - allows extensions to be embedded at the start of the text:

      exxxxxx - ECI number xxxxxx
      m5 - macro 5
      m6 - macro 6
      f - FNC1
      saabbccccc - Structured Append, aa symbol position (1-16), bb total number of symbols (2-16), ccccc file identification (0-64515)
      p - Reader programming
      . - extension terminator

      Example for a structured append, symbol 2 of 6, with FNC1 and ECI 000005. The actual text is "Hello".

      s020600075fe000005.Hello

      One of:
      DM_TEST - doesn't generate the image but returns all the other information.

      Parameters:
      options - the barcode options