com.lowagie.text.pdf.parser

## Class PdfContentStreamProcessor

- java.lang.Object
- - com.lowagie.text.pdf.parser.PdfContentStreamProcessor

-     public class PdfContentStreamProcessor
      extends java.lang.Object

  Processor for a PDF content Stream.
  Since:
    2.1.4

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `private static class` | `PdfContentStreamProcessor.BeginText` A content operator implementation (BT).
    `private static class` | `PdfContentStreamProcessor.EndText` A content operator implementation (ET).
    `private static class` | `PdfContentStreamProcessor.ModifyCurrentTransformationMatrix` A content operator implementation (cm).
    `private static class` | `PdfContentStreamProcessor.MoveNextLineAndShowText` A content operator implementation (').
    `private static class` | `PdfContentStreamProcessor.MoveNextLineAndShowTextWithSpacing` A content operator implementation (").
    `private static class` | `PdfContentStreamProcessor.PopGraphicsState` A content operator implementation (Q).
    `private static class` | `PdfContentStreamProcessor.ProcessGraphicsStateResource` A content operator implementation (gs).
    `private static class` | `PdfContentStreamProcessor.PushGraphicsState` A content operator implementation (q).
    `private static class` | `PdfContentStreamProcessor.SetTextCharacterSpacing` A content operator implementation (Tc).
    `private static class` | `PdfContentStreamProcessor.SetTextFont` A content operator implementation (Tf).
    `private static class` | `PdfContentStreamProcessor.SetTextHorizontalScaling` A content operator implementation (Tz).
    `private static class` | `PdfContentStreamProcessor.SetTextLeading` A content operator implementation (TL).
    `private static class` | `PdfContentStreamProcessor.SetTextRenderMode` A content operator implementation (Tr).
    `private static class` | `PdfContentStreamProcessor.SetTextRise` A content operator implementation (Ts).
    `private static class` | `PdfContentStreamProcessor.SetTextWordSpacing` A content operator implementation (Tw).
    `private static class` | `PdfContentStreamProcessor.ShowText` A content operator implementation (Tj).
    `private static class` | `PdfContentStreamProcessor.ShowTextArray` A content operator implementation (TJ).
    `private static class` | `PdfContentStreamProcessor.TextMoveNextLine` A content operator implementation (T*).
    `private static class` | `PdfContentStreamProcessor.TextMoveStartNextLine` A content operator implementation (Td).
    `private static class` | `PdfContentStreamProcessor.TextMoveStartNextLineWithLeading` A content operator implementation (TD).
    `private static class` | `PdfContentStreamProcessor.TextSetTextMatrix` A content operator implementation (Tm).

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private java.util.Stack` | `gsStack` Stack keeping track of the graphics state.
    `private java.util.Map` | `operators` A map with all supported operators operators (PDF syntax).
    `private RenderListener` | `renderListener` A list of listeners that will be notified of render events
    `private PdfDictionary` | `resources` Resources for the content stream.
    `private Matrix` | `textLineMatrix` Text line matrix.
    `private Matrix` | `textMatrix` Text matrix.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PdfContentStreamProcessor(RenderListener renderListener)` Creates a new PDF Content Stream Processor that will send it's output to the designated render listener.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `private void` | `applyTextAdjust(float tj)` Adjusts the text matrix for the specified adjustment value (see TJ operator in the PDF spec for information)
    `private java.lang.String` | `decode(PdfString in)` Decodes a PdfString (which will contain glyph ids encoded in the font's encoding) based on the active font, and determine the unicode equivalent
    `private void` | `displayPdfString(PdfString string)` Displays text.
    `private Matrix` | `getCurrentTextLineMatrix()` Returns the current line matrix.
    `private Matrix` | `getCurrentTextMatrix()` Returns the current text matrix.
    `private GraphicsState` | `gs()` Returns the current graphics state.
    `private void` | `invokeOperator(PdfLiteral operator, java.util.ArrayList operands)` Invokes an operator.
    `private void` | `populateOperators()` Loads all the supported graphics and text state operators in a map.
    `void` | `processContent(byte[] contentBytes, PdfDictionary resources)` Processes PDF syntax
    `void` | `registerContentOperator(java.lang.String operatorString, ContentOperator operator)` Registers a content operator that will be called when the specified operator string is encountered during content processing.
    `void` | `reset()` Resets the graphics state stack, matrices and resources.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### operators

          private java.util.Map operators

      A map with all supported operators operators (PDF syntax).

    - #### resources

          private PdfDictionary resources

      Resources for the content stream.

    - #### gsStack

          private java.util.Stack gsStack

      Stack keeping track of the graphics state.

    - #### textMatrix

          private Matrix textMatrix

      Text matrix.

    - #### textLineMatrix

          private Matrix textLineMatrix

      Text line matrix.

    - #### renderListener

          private final RenderListener renderListener

      A list of listeners that will be notified of render events

  - ### Constructor Detail

    - #### PdfContentStreamProcessor

          public PdfContentStreamProcessor(RenderListener renderListener)

      Creates a new PDF Content Stream Processor that will send it's output to the designated render listener.
      Parameters:
        `renderListener` - the `AbstractRenderListener` that will receive rendering notifications

  - ### Method Detail

    - #### populateOperators

          private void populateOperators()

      Loads all the supported graphics and text state operators in a map.

    - #### registerContentOperator

          public void registerContentOperator(java.lang.String operatorString,
                                     ContentOperator operator)

      Registers a content operator that will be called when the specified operator string is encountered during content processing. Each operator may be registered only once (it is not legal to have multiple operators with the same operatorString)
      Parameters:
        `operatorString` - the operator id
        `operator` - the operator that will receive notification when the operator is encountered
      Since:
        2.1.7

    - #### reset

          public void reset()

      Resets the graphics state stack, matrices and resources.

    - #### gs

          private GraphicsState gs()

      Returns the current graphics state.
      Returns:
        the graphics state

    - #### getCurrentTextMatrix

          private Matrix getCurrentTextMatrix()

      Returns the current text matrix.
      Returns:
        the text matrix
      Since:
        2.1.5

    - #### getCurrentTextLineMatrix

          private Matrix getCurrentTextLineMatrix()

      Returns the current line matrix.
      Returns:
        the line matrix
      Since:
        2.1.5

    - #### invokeOperator

          private void invokeOperator(PdfLiteral operator,
                            java.util.ArrayList operands)

      Invokes an operator.
      Parameters:
        `operator` - the PDF Syntax of the operator
        `operands` - a list with operands

    - #### decode

          private java.lang.String decode(PdfString in)

      Decodes a PdfString (which will contain glyph ids encoded in the font's encoding) based on the active font, and determine the unicode equivalent
      Parameters:
        `in` - the String that needs to be encoded
      Returns:
        the encoded String
      Since:
        2.1.7

    - #### displayPdfString

          private void displayPdfString(PdfString string)

      Displays text.
      Parameters:
        `string` - the text to display

    - #### applyTextAdjust

          private void applyTextAdjust(float tj)

      Adjusts the text matrix for the specified adjustment value (see TJ operator in the PDF spec for information)
      Parameters:
        `tj` - the text adjustment

    - #### processContent

          public void processContent(byte[] contentBytes,
                            PdfDictionary resources)

      Processes PDF syntax
      Parameters:
        `contentBytes` - the bytes of a content stream
        `resources` - the resources that come with the content stream