com.itextpdf.text.pdf
Class Barcode128

java.lang.Object
  extended by com.itextpdf.text.pdf.Barcode
      extended by com.itextpdf.text.pdf.Barcode128

public class Barcode128
extends Barcode

Implements the code 128 and UCC/EAN-128. Other symbologies are allowed in raw mode.

The code types allowed are:

The default parameters are:
 x = 0.8f;
 font = BaseFont.createFont("Helvetica", "winansi", false);
 size = 8;
 baseline = size;
 barHeight = size * 3;
 textAlignment = Element.ALIGN_CENTER;
 codeType = CODE128;
 

Author:
Paulo Soares

Field Summary
private static IntHashtable ais
           
private static byte[][] BARS
          The bars to generate the code.
private static byte[] BARS_STOP
          The stop bars.
static char CODE_A
           
static char CODE_AB_TO_C
          The charset code change.
static char CODE_AC_TO_B
          The charset code change.
static char CODE_BC_TO_A
          The charset code change.
static char CODE_C
           
static char DEL
           
static char FNC1
           
static char FNC1_INDEX
          The code for UCC/EAN-128.
static char FNC2
           
static char FNC3
           
static char FNC4
           
static char SHIFT
           
static char START_A
          The start code.
static char START_B
          The start code.
static char START_C
          The start code.
static char STARTA
           
static char STARTB
           
static char STARTC
           
 
Fields inherited from class com.itextpdf.text.pdf.Barcode
altText, barHeight, baseline, checksumText, CODABAR, code, CODE128, CODE128_RAW, CODE128_UCC, codeType, EAN13, EAN8, extended, font, generateChecksum, guardBars, inkSpreading, n, PLANET, POSTNET, size, startStopText, SUPP2, SUPP5, textAlignment, UPCA, UPCE, x
 
Constructor Summary
Barcode128()
          Creates new Barcode128
 
Method Summary
 Image createAwtImage(Color foreground, Color background)
          Creates a java.awt.Image.
 Rectangle getBarcodeSize()
          Gets the maximum area that the barcode and the text, if any, will occupy.
static byte[] getBarsCode128Raw(String text)
          Generates the bars.
static String getHumanReadableUCCEAN(String code)
          Gets the human readable text of a sequence of AI.
(package private) static String getPackedRawDigits(String text, int textIndex, int numDigits)
          Packs the digits for charset C also considering FNC1.
static String getRawText(String text, boolean ucc)
          Converts the human readable text to the characters needed to create a barcode.
(package private) static boolean isNextDigits(String text, int textIndex, int numDigits)
          Returns true if the next numDigits starting from index textIndex are numeric skipping any FNC1.
 Rectangle placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor)
          Places the barcode in a PdfContentByte.
static String removeFNC1(String code)
          Removes the FNC1 codes in the text.
 void setCode(String code)
          Sets the code to generate.
 
Methods inherited from class com.itextpdf.text.pdf.Barcode
createImageWithBarcode, createTemplateWithBarcode, getAltText, getBarHeight, getBaseline, getCode, getCodeType, getFont, getInkSpreading, getN, getSize, getTextAlignment, getX, isChecksumText, isExtended, isGenerateChecksum, isGuardBars, isStartStopText, setAltText, setBarHeight, setBaseline, setChecksumText, setCodeType, setExtended, setFont, setGenerateChecksum, setGuardBars, setInkSpreading, setN, setSize, setStartStopText, setTextAlignment, setX
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BARS

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


BARS_STOP

private static final byte[] BARS_STOP
The stop bars.


CODE_AB_TO_C

public static final char CODE_AB_TO_C
The charset code change.

See Also:
Constant Field Values

CODE_AC_TO_B

public static final char CODE_AC_TO_B
The charset code change.

See Also:
Constant Field Values

CODE_BC_TO_A

public static final char CODE_BC_TO_A
The charset code change.

See Also:
Constant Field Values

FNC1_INDEX

public static final char FNC1_INDEX
The code for UCC/EAN-128.

See Also:
Constant Field Values

START_A

public static final char START_A
The start code.

See Also:
Constant Field Values

START_B

public static final char START_B
The start code.

See Also:
Constant Field Values

START_C

public static final char START_C
The start code.

See Also:
Constant Field Values

FNC1

public static final char FNC1
See Also:
Constant Field Values

DEL

public static final char DEL
See Also:
Constant Field Values

FNC3

public static final char FNC3
See Also:
Constant Field Values

FNC2

public static final char FNC2
See Also:
Constant Field Values

SHIFT

public static final char SHIFT
See Also:
Constant Field Values

CODE_C

public static final char CODE_C
See Also:
Constant Field Values

CODE_A

public static final char CODE_A
See Also:
Constant Field Values

FNC4

public static final char FNC4
See Also:
Constant Field Values

STARTA

public static final char STARTA
See Also:
Constant Field Values

STARTB

public static final char STARTB
See Also:
Constant Field Values

STARTC

public static final char STARTC
See Also:
Constant Field Values

ais

private static final IntHashtable ais
Constructor Detail

Barcode128

public Barcode128()
Creates new Barcode128

Method Detail

removeFNC1

public static String removeFNC1(String code)
Removes the FNC1 codes in the text.

Parameters:
code - the text to clean
Returns:
the cleaned text

getHumanReadableUCCEAN

public static String getHumanReadableUCCEAN(String code)
Gets the human readable text of a sequence of AI.

Parameters:
code - the text
Returns:
the human readable text

isNextDigits

static boolean isNextDigits(String text,
                            int textIndex,
                            int numDigits)
Returns true if the next numDigits starting from index textIndex are numeric skipping any FNC1.

Parameters:
text - the text to check
textIndex - where to check from
numDigits - the number of digits to check
Returns:
the check result

getPackedRawDigits

static String getPackedRawDigits(String text,
                                 int textIndex,
                                 int numDigits)
Packs the digits for charset C also considering FNC1. It assumes that all the parameters are valid.

Parameters:
text - the text to pack
textIndex - where to pack from
numDigits - the number of digits to pack. It is always an even number
Returns:
the packed digits, two digits per character

getRawText

public static String getRawText(String text,
                                boolean ucc)
Converts the human readable text to the characters needed to create a barcode. Some optimization is done to get the shortest code.

Parameters:
text - the text to convert
ucc - true if it is an UCC/EAN-128. In this case the character FNC1 is added
Returns:
the code ready to be fed to getBarsCode128Raw()

getBarsCode128Raw

public static byte[] getBarsCode128Raw(String text)
Generates the bars. The input has the actual barcodes, not the human readable text.

Parameters:
text - the barcode
Returns:
the bars

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 Barcode
Returns:
the size the barcode occupies.

placeBarcode

public Rectangle placeBarcode(PdfContentByte cb,
                              BaseColor barColor,
                              BaseColor textColor)
Places the barcode in a PdfContentByte. 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 Barcode
Parameters:
cb - the PdfContentByte 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 Barcode
Parameters:
foreground - the color of the bars
background - the color of the background
Returns:
the image

setCode

public void setCode(String code)
Sets the code to generate. If it's an UCC code and starts with '(' it will be split by the AI. This code in UCC mode is valid:

(01)00000090311314(10)ABC123(15)060916

Overrides:
setCode in class Barcode
Parameters:
code - the code to generate

Hosted by Hostbasket