com.lowagie.text.pdf

Class 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 (psoares@consiste.pt)

Field Summary
static IntHashtableais
static byte[][]BARS
The bars to generate the code.
static byte[]BARS_STOP
The stop bars.
static charCODE_A
static charCODE_AB_TO_C
The charset code change.
static charCODE_AC_TO_B
The charset code change.
static charCODE_BC_TO_A
The charset code change.
static charCODE_C
static charDEL
static charFNC1
static charFNC1_INDEX
The code for UCC/EAN-128.
static charFNC2
static charFNC3
static charFNC4
static charSHIFT
static charSTARTA
static charSTARTB
static charSTARTC
static charSTART_A
The start code.
static charSTART_B
The start code.
static charSTART_C
The start code.
Constructor Summary
Barcode128()
Creates new Barcode128
Method Summary
ImagecreateAwtImage(Color foreground, Color background)
Creates a java.awt.Image.
RectanglegetBarcodeSize()
Gets the maximum area that the barcode and the text, if any, will occupy.
static byte[]getBarsCode128Raw(String text)
Generates the bars.
static StringgetHumanReadableUCCEAN(String code)
Gets the human readable text of a sequence of AI.
static StringgetPackedRawDigits(String text, int textIndex, int numDigits)
Packs the digits for charset C also considering FNC1.
static StringgetRawText(String text, boolean ucc)
Converts the human readable text to the characters needed to create a barcode.
static booleanisNextDigits(String text, int textIndex, int numDigits)
Returns true if the next numDigits starting from index textIndex are numeric skipping any FNC1.
RectangleplaceBarcode(PdfContentByte cb, Color barColor, Color textColor)
Places the barcode in a PdfContentByte.
static StringremoveFNC1(String code)
Removes the FNC1 codes in the text.
voidsetCode(String code)
Sets the code to generate.

Field Detail

ais

private static final IntHashtable ais

BARS

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

BARS_STOP

private static final byte[] BARS_STOP
The stop bars.

CODE_A

public static final char CODE_A

CODE_AB_TO_C

public static final char CODE_AB_TO_C
The charset code change.

CODE_AC_TO_B

public static final char CODE_AC_TO_B
The charset code change.

CODE_BC_TO_A

public static final char CODE_BC_TO_A
The charset code change.

CODE_C

public static final char CODE_C

DEL

public static final char DEL

FNC1

public static final char FNC1

FNC1_INDEX

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

FNC2

public static final char FNC2

FNC3

public static final char FNC3

FNC4

public static final char FNC4

SHIFT

public static final char SHIFT

STARTA

public static final char STARTA

STARTB

public static final char STARTB

STARTC

public static final char STARTC

START_A

public static final char START_A
The start code.

START_B

public static final char START_B
The start code.

START_C

public static final char START_C
The start code.

Constructor Detail

Barcode128

public Barcode128()
Creates new Barcode128

Method Detail

createAwtImage

public Image createAwtImage(Color foreground, Color background)
Creates a java.awt.Image. This image only contains the bars without any text.

Parameters: foreground the color of the bars background the color of the background

Returns: the image

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).

Returns: the size the barcode occupies.

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

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

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()

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

placeBarcode

public Rectangle placeBarcode(PdfContentByte cb, Color barColor, Color textColor)
Places the barcode in a PdfContentByte. The barcode is always placed at coodinates (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

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

removeFNC1

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

Parameters: code the text to clean

Returns: the cleaned text

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

Parameters: code the code to generate