com.lowagie.text.pdf

## Class BarcodeEAN

- java.lang.Object
- - com.lowagie.text.pdf.Barcode
  - - com.lowagie.text.pdf.BarcodeEAN

    public class BarcodeEAN
    extends Barcode

Generates barcodes in several formats: EAN13, EAN8, UPCA, UPCE, supplemental 2 and 5. The default parameters are:

    x = 0.8f;
    font = BaseFont.createFont("Helvetica", "winansi", false);
    size = 8;
    baseline = size;
    barHeight = size * 3;
    guardBars = true;
    codeType = EAN13;
    code = "";

Author:
  Paulo Soares (psoares@consiste.pt)

### Field Summary

Fields
`private static byte[][]` `BARS` The basic bar widths.
`private static int` `EVEN` Marker for even parity.
`private static int[]` `GUARD_EAN13` The bar positions that are guard bars.
`private static int[]` `GUARD_EAN8` The bar positions that are guard bars.
`private static int[]` `GUARD_EMPTY` The bar positions that are guard bars.
`private static int[]` `GUARD_UPCA` The bar positions that are guard bars.
`private static int[]` `GUARD_UPCE` The bar positions that are guard bars.
`private static int` `ODD` Marker for odd parity.
`private static byte[][]` `PARITY13` Sequence of parities to be used with EAN13.
`private static byte[][]` `PARITY2` Sequence of parities to be used with supplemental 2.
`private static byte[][]` `PARITY5` Sequence of parities to be used with supplemental 2.
`private static byte[][]` `PARITYE` Sequence of parities to be used with UPCE.
`private static float[]` `TEXTPOS_EAN13` The x coordinates to place the text.
`private static float[]` `TEXTPOS_EAN8` The x coordinates to place the text.
`private static int` `TOTALBARS_EAN13` The total number of bars for EAN13.
`private static int` `TOTALBARS_EAN8` The total number of bars for EAN8.
`private static int` `TOTALBARS_SUPP2` The total number of bars for supplemental 2.
`private static int` `TOTALBARS_SUPP5` The total number of bars for supplemental 5.
`private static int` `TOTALBARS_UPCE` The total number of bars for UPCE.

### Fields inherited from class com.lowagie.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

Constructors
Constructor and Description
`BarcodeEAN()` Creates new BarcodeEAN

### Method Summary

Methods
`static int` `calculateEANParity(java.lang.String code)` Calculates the EAN parity character.
`static java.lang.String` `convertUPCAtoUPCE(java.lang.String text)` Converts an UPCA code into an UPCE code.
`java.awt.Image` `createAwtImage(java.awt.Color foreground, java.awt.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[]` `getBarsEAN13(java.lang.String _code)` Creates the bars for the barcode EAN13 and UPCA.
`static byte[]` `getBarsEAN8(java.lang.String _code)` Creates the bars for the barcode EAN8.
`static byte[]` `getBarsSupplemental2(java.lang.String _code)` Creates the bars for the barcode supplemental 2.
`static byte[]` `getBarsSupplemental5(java.lang.String _code)` Creates the bars for the barcode supplemental 5.
`static byte[]` `getBarsUPCE(java.lang.String _code)` Creates the bars for the barcode UPCE.
`Rectangle` `placeBarcode(PdfContentByte cb, java.awt.Color barColor, java.awt.Color textColor)` Places the barcode in a `PdfContentByte`.

### Methods inherited from class com.lowagie.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, setCode, 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

#### GUARD_EMPTY

    private static final int[] GUARD_EMPTY

The bar positions that are guard bars.

#### GUARD_UPCA

    private static final int[] GUARD_UPCA

The bar positions that are guard bars.

#### GUARD_EAN13

    private static final int[] GUARD_EAN13

The bar positions that are guard bars.

#### GUARD_EAN8

    private static final int[] GUARD_EAN8

The bar positions that are guard bars.

#### GUARD_UPCE

    private static final int[] GUARD_UPCE

The bar positions that are guard bars.

#### TEXTPOS_EAN13

    private static final float[] TEXTPOS_EAN13

The x coordinates to place the text.

#### TEXTPOS_EAN8

    private static final float[] TEXTPOS_EAN8

The x coordinates to place the text.

#### BARS

    private static final byte[][] BARS

The basic bar widths.

#### TOTALBARS_EAN13

    private static final int TOTALBARS_EAN13

The total number of bars for EAN13.

See Also:
  Constant Field Values

#### TOTALBARS_EAN8

    private static final int TOTALBARS_EAN8

The total number of bars for EAN8.

See Also:
  Constant Field Values

#### TOTALBARS_UPCE

    private static final int TOTALBARS_UPCE

The total number of bars for UPCE.

See Also:
  Constant Field Values

#### TOTALBARS_SUPP2

    private static final int TOTALBARS_SUPP2

The total number of bars for supplemental 2.

See Also:
  Constant Field Values

#### TOTALBARS_SUPP5

    private static final int TOTALBARS_SUPP5

The total number of bars for supplemental 5.

See Also:
  Constant Field Values

#### ODD

    private static final int ODD

Marker for odd parity.

See Also:
  Constant Field Values

#### EVEN

    private static final int EVEN

Marker for even parity.

See Also:
  Constant Field Values

#### PARITY13

    private static final byte[][] PARITY13

Sequence of parities to be used with EAN13.

#### PARITY2

    private static final byte[][] PARITY2

Sequence of parities to be used with supplemental 2.

#### PARITY5

    private static final byte[][] PARITY5

Sequence of parities to be used with supplemental 2.

#### PARITYE

    private static final byte[][] PARITYE

Sequence of parities to be used with UPCE.

### Constructor Detail

#### BarcodeEAN

    public BarcodeEAN()

Creates new BarcodeEAN

### Method Detail

#### calculateEANParity

    public static int calculateEANParity(java.lang.String code)

Calculates the EAN parity character.

Parameters:
  `code` - the code
Returns:
  the parity character

#### convertUPCAtoUPCE

    public static java.lang.String convertUPCAtoUPCE(java.lang.String text)

Converts an UPCA code into an UPCE code. If the code can not be converted a `null` is returned.

Parameters:
  `text` - the code to convert. It must have 12 numeric characters
Returns:
  the 8 converted digits or `null` if the code could not be converted

#### getBarsEAN13

    public static byte[] getBarsEAN13(java.lang.String _code)

Creates the bars for the barcode EAN13 and UPCA.

Parameters:
  `_code` - the text with 13 digits
Returns:
  the barcode

#### getBarsEAN8

    public static byte[] getBarsEAN8(java.lang.String _code)

Creates the bars for the barcode EAN8.

Parameters:
  `_code` - the text with 8 digits
Returns:
  the barcode

#### getBarsUPCE

    public static byte[] getBarsUPCE(java.lang.String _code)

Creates the bars for the barcode UPCE.

Parameters:
  `_code` - the text with 8 digits
Returns:
  the barcode

#### getBarsSupplemental2

    public static byte[] getBarsSupplemental2(java.lang.String _code)

Creates the bars for the barcode supplemental 2.

Parameters:
  `_code` - the text with 2 digits
Returns:
  the barcode

#### getBarsSupplemental5

    public static byte[] getBarsSupplemental5(java.lang.String _code)

Creates the bars for the barcode supplemental 5.

Parameters:
  `_code` - the text with 5 digits
Returns:
  the barcode

#### 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,
                         java.awt.Color barColor,
                         java.awt.Color 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 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 `Barcode`
Parameters:
  `foreground` - the color of the bars
  `background` - the color of the background
Returns:
  the image