Class NativeTextPainter

  • All Implemented Interfaces:
    org.apache.batik.bridge.TextPainter
    Direct Known Subclasses:
    PDFTextPainter, PSTextPainter

    public abstract class NativeTextPainter
    extends org.apache.batik.bridge.StrokingTextPainter
    Abstract base class for text painters that use specialized text commands native to an output format to render text.
    • 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 
      Modifier and Type Field Description
      private static org.apache.batik.bridge.TextLayoutFactory COMPLEX_SCRIPT_TEXT_LAYOUT_FACTORY  
      private static boolean DEBUG  
      protected Font font  
      protected org.apache.batik.bridge.FontFamilyResolver fontFamilyResolver  
      protected FontInfo fontInfo
      the font collection
      protected static org.apache.commons.logging.Log log
      the logger for this class
      protected org.apache.batik.gvt.text.TextPaintInfo 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
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract void beginTextObject()  
      protected abstract void clip​(java.awt.Shape clip)  
      protected java.lang.CharSequence collectCharacters​(java.text.AttributedCharacterIterator runaci)
      Collects all characters from an AttributedCharacterIterator.
      java.util.List computeTextRuns​(org.apache.batik.bridge.TextNode node, java.text.AttributedCharacterIterator nodeACI, java.text.AttributedCharacterIterator[] chunkACIs)  
      protected abstract void endTextObject()  
      protected org.apache.batik.bridge.FontFamilyResolver getFontFamilyResolver()  
      protected org.apache.batik.bridge.TextLayoutFactory getTextLayoutFactory()  
      protected java.util.Set getTextRunBoundaryAttributes()  
      protected abstract boolean isSupported​(java.awt.Graphics2D g2d)
      Indicates whether the given Graphics2D instance if compatible with this text painter implementation.
      protected void logCharacter​(char ch, org.apache.batik.bridge.TextSpanLayout layout, int index, boolean visibleChar)  
      protected void logTextRun​(org.apache.batik.bridge.StrokingTextPainter.TextRun textRun)  
      protected void paintTextRun​(org.apache.batik.bridge.StrokingTextPainter.TextRun textRun, java.awt.Graphics2D g2d)
      Paints a single text run.
      protected void paintTextRuns​(java.util.List textRuns, java.awt.Graphics2D g2d)  
      protected abstract void positionGlyph​(java.awt.geom.Point2D prevPos, java.awt.geom.Point2D glyphPos, boolean reposition)  
      protected abstract void preparePainting​(java.awt.Graphics2D g2d)  
      private java.util.List reorderRuns​(java.util.List runs, int level)  
      protected java.util.List reorderTextRuns​(org.apache.batik.bridge.StrokingTextPainter.TextChunk chunk, java.util.List runs)  
      protected abstract void restoreGraphicsState()  
      private void reverseGlyphs​(java.util.List runs, boolean mirror)  
      private java.util.List reverseRuns​(java.util.List runs, int s, int e)  
      protected abstract void saveGraphicsState()  
      protected abstract void setInitialTransform​(java.awt.geom.AffineTransform transform)  
      protected abstract void writeGlyph​(char glyph, java.awt.geom.AffineTransform transform)  
      protected void writeGlyphs​(FOPGVTGlyphVector gv, java.awt.geom.GeneralPath debugShapes)  
      • 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
    • Field Detail

      • log

        protected static final org.apache.commons.logging.Log log
        the logger for this class
      • fontInfo

        protected final FontInfo fontInfo
        the font collection
      • fontFamilyResolver

        protected final org.apache.batik.bridge.FontFamilyResolver fontFamilyResolver
      • font

        protected Font font
      • tpi

        protected org.apache.batik.gvt.text.TextPaintInfo tpi
      • COMPLEX_SCRIPT_TEXT_LAYOUT_FACTORY

        private static final org.apache.batik.bridge.TextLayoutFactory COMPLEX_SCRIPT_TEXT_LAYOUT_FACTORY
    • Constructor Detail

      • NativeTextPainter

        public NativeTextPainter​(FontInfo fontInfo)
        Creates a new instance.
        Parameters:
        fontInfo - the font collection
    • Method Detail

      • isSupported

        protected abstract boolean isSupported​(java.awt.Graphics2D g2d)
        Indicates whether the given Graphics2D instance if compatible with this text painter implementation.
        Parameters:
        g2d - the instance to check
        Returns:
        true if the instance is compatible.
      • paintTextRun

        protected final void paintTextRun​(org.apache.batik.bridge.StrokingTextPainter.TextRun textRun,
                                          java.awt.Graphics2D g2d)
                                   throws java.io.IOException
        Paints a single text run.
        Parameters:
        textRun - the text run
        g2d - the target Graphics2D instance
        Throws:
        java.io.IOException - if an I/O error occurs while rendering the text
      • writeGlyphs

        protected void writeGlyphs​(FOPGVTGlyphVector gv,
                                   java.awt.geom.GeneralPath debugShapes)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • paintTextRuns

        protected void paintTextRuns​(java.util.List textRuns,
                                     java.awt.Graphics2D g2d)
        Overrides:
        paintTextRuns in class org.apache.batik.bridge.StrokingTextPainter
      • collectCharacters

        protected java.lang.CharSequence collectCharacters​(java.text.AttributedCharacterIterator runaci)
        Collects all characters from an AttributedCharacterIterator.
        Parameters:
        runaci - the character iterator
        Returns:
        the characters
      • computeTextRuns

        public java.util.List computeTextRuns​(org.apache.batik.bridge.TextNode node,
                                              java.text.AttributedCharacterIterator nodeACI,
                                              java.text.AttributedCharacterIterator[] chunkACIs)
        Overrides:
        computeTextRuns in class org.apache.batik.bridge.StrokingTextPainter
      • getTextRunBoundaryAttributes

        protected java.util.Set getTextRunBoundaryAttributes()
        Overrides:
        getTextRunBoundaryAttributes in class org.apache.batik.bridge.StrokingTextPainter
      • reorderTextRuns

        protected java.util.List reorderTextRuns​(org.apache.batik.bridge.StrokingTextPainter.TextChunk chunk,
                                                 java.util.List runs)
        Overrides:
        reorderTextRuns in class org.apache.batik.bridge.StrokingTextPainter
      • reorderRuns

        private java.util.List reorderRuns​(java.util.List runs,
                                           int level)
      • reverseRuns

        private java.util.List reverseRuns​(java.util.List runs,
                                           int s,
                                           int e)
      • reverseGlyphs

        private void reverseGlyphs​(java.util.List runs,
                                   boolean mirror)
      • preparePainting

        protected abstract void preparePainting​(java.awt.Graphics2D g2d)
      • saveGraphicsState

        protected abstract void saveGraphicsState()
                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • restoreGraphicsState

        protected abstract void restoreGraphicsState()
                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • setInitialTransform

        protected abstract void setInitialTransform​(java.awt.geom.AffineTransform transform)
                                             throws java.io.IOException
        Throws:
        java.io.IOException
      • clip

        protected abstract void clip​(java.awt.Shape clip)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • beginTextObject

        protected abstract void beginTextObject()
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • endTextObject

        protected abstract void endTextObject()
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • positionGlyph

        protected abstract void positionGlyph​(java.awt.geom.Point2D prevPos,
                                              java.awt.geom.Point2D glyphPos,
                                              boolean reposition)
      • writeGlyph

        protected abstract void writeGlyph​(char glyph,
                                           java.awt.geom.AffineTransform transform)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • logTextRun

        protected final void logTextRun​(org.apache.batik.bridge.StrokingTextPainter.TextRun textRun)
      • logCharacter

        protected final void logCharacter​(char ch,
                                          org.apache.batik.bridge.TextSpanLayout layout,
                                          int index,
                                          boolean visibleChar)
        Parameters:
        ch - a character
        layout - a text span layout
        index - an index
        visibleChar - visible character flag
      • getFontFamilyResolver

        protected org.apache.batik.bridge.FontFamilyResolver getFontFamilyResolver()
        Overrides:
        getFontFamilyResolver in class org.apache.batik.bridge.StrokingTextPainter
      • getTextLayoutFactory

        protected org.apache.batik.bridge.TextLayoutFactory getTextLayoutFactory()
        Overrides:
        getTextLayoutFactory in class org.apache.batik.bridge.BasicTextPainter