com.lowagie.text.pdf

## Class Barcode39

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

-     public class Barcode39
      extends Barcode

  Implements the code 39 and code 39 extended. The default parameters are:

      x = 0.8f;
      n = 2;
      font = BaseFont.createFont("Helvetica", "winansi", false);
      size = 8;
      baseline = size;
      barHeight = size * 3;
      textAlignment = Element.ALIGN_CENTER;
      generateChecksum = false;
      checksumText = false;
      startStopText = true;
      extended = false;

  Author:
    Paulo Soares (psoares@consiste.pt)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static byte[][]` | `BARS` The bars to generate the code.
    `private static java.lang.String` | `CHARS` The index chars to `BARS`.
    `private static java.lang.String` | `EXTENDED` The character combinations to make the code 39 extended.

    - ### 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
    `Barcode39()` Creates a new Barcode39.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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[]` | `getBarsCode39(java.lang.String text)` Creates the bars.
    `(package private) static char` | `getChecksum(java.lang.String text)` Calculates the checksum.
    `static java.lang.String` | `getCode39Ex(java.lang.String text)` Converts the extended text into a normal, escaped text, ready to generate bars.
    `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

    - #### BARS

          private static final byte[][] BARS

      The bars to generate the code.

    - #### CHARS

          private static final java.lang.String CHARS

      The index chars to `BARS`.
      See Also:
        Constant Field Values

    - #### EXTENDED

          private static final java.lang.String EXTENDED

      The character combinations to make the code 39 extended.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Barcode39

          public Barcode39()

      Creates a new Barcode39.

  - ### Method Detail

    - #### getBarsCode39

          public static byte[] getBarsCode39(java.lang.String text)

      Creates the bars.
      Parameters:
        `text` - the text to create the bars. This text does not include the start and stop characters
      Returns:
        the bars

    - #### getCode39Ex

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

      Converts the extended text into a normal, escaped text, ready to generate bars.
      Parameters:
        `text` - the extended text
      Returns:
        the escaped text

    - #### getChecksum

          static char getChecksum(java.lang.String text)

      Calculates the checksum.
      Parameters:
        `text` - the text
      Returns:
        the checksum

    - #### 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