Class LayoutProcessor

java.lang.Object
com.lowagie.text.pdf.LayoutProcessor

public class LayoutProcessor extends Object
Provides glyph layout e.g. for accented Latin letters.
  • Field Details

    • DEFAULT_FLAGS

      private static final int DEFAULT_FLAGS
      See Also:
    • awtFontMap

      private static final Map<BaseFont,Font> awtFontMap
    • globalTextAttributes

      private static final Map<TextAttribute,Object> globalTextAttributes
    • enabled

      private static boolean enabled
    • flags

      private static int flags
  • Constructor Details

    • LayoutProcessor

      private LayoutProcessor()
  • Method Details

    • enable

      public static void enable()
      Enables the processor.

      Kerning and ligatures are switched off. This method can only be called once.

    • enable

      public static void enable(int flags)
      Enables the processor with the provided flags.

      Kerning and ligatures are switched off. This method can only be called once.

      Parameters:
      flags - see java.awt.Font.layoutGlyphVector
    • enableKernLiga

      public static void enableKernLiga()
      Enables the processor.

      Kerning and ligatures are switched on. This method can only be called once.

    • enableKernLiga

      public static void enableKernLiga(int flags)
      Enables the processor with the provided flags.

      Kerning and ligatures are switched on. This method can only be called once.

      Parameters:
      flags - see java.awt.Font.layoutGlyphVector
    • isEnabled

      public static boolean isEnabled()
    • setKerning

      public static void setKerning()
      Set kerning
      See Also:
    • setKerning

      public static void setKerning(Font font)
      Set kerning for one font
      Parameters:
      font - The font for which kerning is to be turned on
      See Also:
    • setLigatures

      public static void setLigatures()
      Add ligatures
    • setLigatures

      public static void setLigatures(Font font)
      Set ligatures for one font
      Parameters:
      font - The font for which ligatures are to be turned on
    • setRunDirectionRtl

      public static void setRunDirectionRtl(Font font)
      Set run direction for one font to RTL
      Parameters:
      font - The font for which the run direction is set
    • setRunDirectionLtr

      public static void setRunDirectionLtr(Font font)
      Set run direction for one font to LTR
      Parameters:
      font - The font for which the run direction is set
    • setRunDirection

      private static void setRunDirection(Font font, Boolean runDirection)
      Set run direction for one font
      Parameters:
      font - The font for which the run direction is set
    • setTextAttributes

      private static void setTextAttributes(Font font, Map<TextAttribute,Object> textAttributes)
      Set text attributes to font The attributes are used only for glyph layout, and don't change the visual appearance of the font
      Parameters:
      font - The font for which kerning is to be turned on
      textAttributes - Map of text attributes to be set
      See Also:
    • getFlags

      public static int getFlags()
    • isSet

      public static boolean isSet(int queryFlags)
    • supportsFont

      public static boolean supportsFont(BaseFont baseFont)
    • loadFont

      public static void loadFont(BaseFont baseFont, String filename)
      Loads the AWT font needed for layout
      Parameters:
      baseFont - OpenPdf base font
      filename - of the font file
      Throws:
      RuntimeException - if font can not be loaded
    • computeGlyphVector

      public static GlyphVector computeGlyphVector(BaseFont baseFont, float fontSize, String text)
      Computes glyph positioning
      Parameters:
      baseFont - OpenPdf base font
      text - input text
      Returns:
      glyph vector containing reordered text, width and positioning info
    • hasAdjustments

      private static boolean hasAdjustments(GlyphVector glyphVector)
      Checks if the glyphVector contains adjustments that make advanced layout necessary
      Parameters:
      glyphVector - glyph vector containing the positions
      Returns:
      true, if the glyphVector contains adjustments
    • showText

      public static Point2D showText(PdfContentByte cb, BaseFont baseFont, float fontSize, String text)
      Shows a text using glyph positioning (if needed)
      Parameters:
      cb - object containing the content of the page
      baseFont - base font to use
      fontSize - font size to apply
      text - text to show
      Returns:
      layout position correction to correct the start of the next line
    • disable

      public static void disable()