PSTextPainter (Apache FOP Core 2.11 API)
Date: 2025-04-24

org.apache.fop.render.ps

## Class PSTextPainter

- java.lang.Object
- - org.apache.batik.bridge.BasicTextPainter
  - - org.apache.batik.bridge.StrokingTextPainter
    - - org.apache.fop.svg.NativeTextPainter
      - - org.apache.fop.render.ps.PSTextPainter

- All Implemented Interfaces:
    org.apache.batik.bridge.TextPainter

      public class PSTextPainter
      extends NativeTextPainter

  Renders the attributed character iterator of a `TextNode`. This class draws the text directly using PostScript text operators so the text is not drawn using shapes which makes the PS files larger.

  The text runs are split into smaller text runs that can be bundles in single calls of the xshow, yshow or xyshow operators. For outline text, the charpath operator is used.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.batik.bridge.StrokingTextPainter

      `org.apache.batik.bridge.StrokingTextPainter.TextChunk, org.apache.batik.bridge.StrokingTextPainter.TextRun`

    - ### Nested classes/interfaces inherited from class org.apache.batik.bridge.BasicTextPainter

      `org.apache.batik.bridge.BasicTextPainter.BasicMark`

  - ### Field Summary

    - ### Fields inherited from class org.apache.fop.svg.NativeTextPainter

      `font, fontFamilyResolver, fontInfo, log, tpi`

    - ### Fields inherited from class org.apache.batik.bridge.StrokingTextPainter

      `ADJUST_ALL, ADJUST_SPACING, ALT_GLYPH_HANDLER, ANCHOR_TYPE, BIDI_LEVEL, FLOW_PARAGRAPH, FLOW_REGIONS, GVT_FONT, GVT_FONTS, PAINT_INFO, singleton, TEXT_COMPOUND_ID, TEXTPATH, WRITING_MODE, WRITING_MODE_RTL, WRITING_MODE_TTB, XPOS, YPOS`

    - ### Fields inherited from class org.apache.batik.bridge.BasicTextPainter

      `aaOffFontRenderContext, fontRenderContext`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PSTextPainter(FontInfo fontInfo)` Create a new PS text painter with the given font information.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `beginTextObject()`
    `protected void` | `clip(Shape shape)`
    `protected void` | `endTextObject()`
    `protected boolean` | `isSupported(Graphics2D g2d)` Indicates whether the given `Graphics2D` instance if compatible with this text painter implementation.
    `protected void` | `positionGlyph(Point2D prevPos, Point2D glyphPos, boolean reposition)`
    `protected void` | `preparePainting(Graphics2D g2d)`
    `protected void` | `restoreGraphicsState()`
    `protected void` | `saveGraphicsState()`
    `protected void` | `setInitialTransform(AffineTransform transform)`
    `protected void` | `writeGlyph(char glyph, AffineTransform localTransform)`

    - ### Methods inherited from class org.apache.fop.svg.NativeTextPainter

      `collectCharacters, computeTextRuns, getFontFamilyResolver, getLocalTransform, getTextLayoutFactory, getTextRunBoundaryAttributes, logCharacter, logTextRun, paintTextRun, paintTextRuns, reorderTextRuns, writeGlyphs`

    - ### Methods inherited from class org.apache.batik.bridge.StrokingTextPainter

      `adjustChunkOffsets, computeTextRuns, createModifiedACIForFontMatching, getBounds2D, getDecorationOutline, getDecorationStrokeOutline, getHighlightShape, getInstance, getMark, getOutline, getSelected, getTextChunk, getTextChunkACIs, getTextRuns, hitTest, paint, paintDecorations, printAttrs, selectFirst, selectLast`

    - ### Methods inherited from class org.apache.batik.bridge.BasicTextPainter

      `getGeometryBounds, selectAt, selectTo`

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

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

- - ### Constructor Detail

    - #### PSTextPainter

          public PSTextPainter(FontInfo fontInfo)

      Create a new PS text painter with the given font information.
      Parameters:
        `fontInfo` - the font collection

  - ### Method Detail

    - #### isSupported

          protected boolean isSupported(Graphics2D g2d)

      Indicates whether the given `Graphics2D` instance if compatible with this text painter implementation.
      Specified by:
        `isSupported` in class `NativeTextPainter`
      Parameters:
        `g2d` - the instance to check
      Returns:
        true if the instance is compatible.

    - #### preparePainting

          protected void preparePainting(Graphics2D g2d)

      Specified by:
        `preparePainting` in class `NativeTextPainter`

    - #### saveGraphicsState

          protected void saveGraphicsState()
                                    throws IOException

      Specified by:
        `saveGraphicsState` in class `NativeTextPainter`
      Throws:
        `IOException`

    - #### restoreGraphicsState

          protected void restoreGraphicsState()
                                       throws IOException

      Specified by:
        `restoreGraphicsState` in class `NativeTextPainter`
      Throws:
        `IOException`

    - #### setInitialTransform

          protected void setInitialTransform(AffineTransform transform)
                                      throws IOException

      Specified by:
        `setInitialTransform` in class `NativeTextPainter`
      Throws:
        `IOException`

    - #### clip

          protected void clip(Shape shape)
                       throws IOException

      Specified by:
        `clip` in class `NativeTextPainter`
      Throws:
        `IOException`

    - #### beginTextObject

          protected void beginTextObject()
                                  throws IOException

      Specified by:
        `beginTextObject` in class `NativeTextPainter`
      Throws:
        `IOException`

    - #### endTextObject

          protected void endTextObject()
                                throws IOException

      Specified by:
        `endTextObject` in class `NativeTextPainter`
      Throws:
        `IOException`

    - #### positionGlyph

          protected void positionGlyph(Point2D prevPos,
                                       Point2D glyphPos,
                                       boolean reposition)

      Specified by:
        `positionGlyph` in class `NativeTextPainter`

    - #### writeGlyph

          protected void writeGlyph(char glyph,
                                    AffineTransform localTransform)
                             throws IOException

      Specified by:
        `writeGlyph` in class `NativeTextPainter`
      Throws:
        `IOException`

Copyright © 2025 Apache Software Foundation. All rights reserved.