Class PDSimpleFont

java.lang.Object
org.apache.pdfbox.pdmodel.font.PDFont
org.apache.pdfbox.pdmodel.font.PDSimpleFont
All Implemented Interfaces:
COSObjectable, PDFontLike
Direct Known Subclasses:
PDTrueTypeFont, PDType1CFont, PDType1Font, PDType3Font

public abstract class PDSimpleFont extends PDFont
A simple font. Simple fonts use a PostScript encoding vector.
  • Field Details

    • LOG

      private static final org.apache.commons.logging.Log LOG
    • encoding

      protected Encoding encoding
    • glyphList

      protected GlyphList glyphList
    • isSymbolic

      private Boolean isSymbolic
    • noUnicode

      private final Set<Integer> noUnicode
  • Constructor Details

    • PDSimpleFont

      PDSimpleFont()
      Constructor for embedding.
    • PDSimpleFont

      PDSimpleFont(Standard14Fonts.FontName baseFont)
      Constructor for Standard 14.
    • PDSimpleFont

      PDSimpleFont(COSDictionary fontDictionary)
      Constructor.
      Parameters:
      fontDictionary - Font dictionary.
  • Method Details

    • readEncoding

      protected void readEncoding() throws IOException
      Reads the Encoding from the Font dictionary or the embedded or substituted font file. Must be called at the end of any subclass constructors.
      Throws:
      IOException - if the font file could not be read
    • readEncodingFromFont

      protected abstract Encoding readEncodingFromFont() throws IOException
      Called by readEncoding() if the encoding needs to be extracted from the font file.
      Returns:
      encoding of the font
      Throws:
      IOException - if the font file could not be read.
    • getEncoding

      public Encoding getEncoding()
      Returns the Encoding.
      Returns:
      encoding
    • getGlyphList

      public GlyphList getGlyphList()
      Returns the glyphlist.
      Returns:
      the glyphlist
    • isSymbolic

      public final boolean isSymbolic()
      Returns true if the font is a symbolic (that is, it does not use the Adobe Standard Roman character set).
      Returns:
      true if the font is a symbolic
    • isFontSymbolic

      protected Boolean isFontSymbolic()
      Internal implementation of isSymbolic, allowing for the fact that the result may be indeterminate.
      Returns:
      true if isSymbolic
    • getSymbolicFlag

      protected final Boolean getSymbolicFlag()
      Returns the value of the symbolic flag, allowing for the fact that the result may be indeterminate.
      Returns:
      the value of the isSymbolic flag form the font descriptor
    • toUnicode

      public String toUnicode(int code)
      Description copied from class: PDFont
      Returns the Unicode character sequence which corresponds to the given character code.
      Overrides:
      toUnicode in class PDFont
      Parameters:
      code - character code
      Returns:
      Unicode character(s)
    • toUnicode

      public String toUnicode(int code, GlyphList customGlyphList)
      Description copied from class: PDFont
      Returns the Unicode character sequence which corresponds to the given character code.
      Overrides:
      toUnicode in class PDFont
      Parameters:
      code - character code
      customGlyphList - a custom glyph list to use instead of the Adobe Glyph List
      Returns:
      Unicode character(s)
    • isVertical

      public boolean isVertical()
      Description copied from class: PDFont
      Returns true if the font uses vertical writing mode.
      Specified by:
      isVertical in class PDFont
      Returns:
      true if the font uses vertical writing mode
    • getStandard14Width

      protected final float getStandard14Width(int code)
      Description copied from class: PDFont
      Returns the glyph width from the AFM if this is a Standard 14 font.
      Specified by:
      getStandard14Width in class PDFont
      Parameters:
      code - character code
      Returns:
      width in 1/1000 text space
    • isStandard14

      public boolean isStandard14()
      Description copied from class: PDFont
      Returns true if this font is one of the "Standard 14" fonts and receives special handling.
      Overrides:
      isStandard14 in class PDFont
      Returns:
      true if this font is one of the "Standard 14" fonts
    • isNonZeroBoundingBox

      protected boolean isNonZeroBoundingBox(PDRectangle bbox)
    • getPath

      public abstract GeneralPath getPath(String name) throws IOException
      Returns the path for the character with the given name. For some fonts, GIDs may be used instead of names when calling this method. *
      Parameters:
      name - glyph name
      Returns:
      glyph path of the character with the given name
      Throws:
      IOException - if the path could not be read
    • hasGlyph

      public abstract boolean hasGlyph(String name) throws IOException
      Returns true if the font contains the character with the given name.
      Parameters:
      name - glyph name
      Returns:
      true if the font contains the character with the given name
      Throws:
      IOException - if the path could not be read
    • getFontBoxFont

      public abstract FontBoxFont getFontBoxFont()
      Returns the embedded or system font used for rendering. This is never null.
      Returns:
      the embedded or system font used for rendering
    • addToSubset

      public void addToSubset(int codePoint)
      Description copied from class: PDFont
      Adds the given Unicode point to the subset.
      Specified by:
      addToSubset in class PDFont
      Parameters:
      codePoint - Unicode code point
    • subset

      public void subset() throws IOException
      Description copied from class: PDFont
      Replaces this font with a subset containing only the given Unicode characters.
      Specified by:
      subset in class PDFont
      Throws:
      IOException - if the subset could not be written
    • willBeSubset

      public boolean willBeSubset()
      Description copied from class: PDFont
      Returns true if this font will be subset when embedded.
      Specified by:
      willBeSubset in class PDFont
      Returns:
      true if this font will be subset when embedded
    • hasExplicitWidth

      public boolean hasExplicitWidth(int code) throws IOException
      Description copied from interface: PDFontLike
      Returns true if the Font dictionary specifies an explicit width for the given glyph. This includes Width, W but not default widths entries.
      Parameters:
      code - character code
      Returns:
      true if the Font dictionary specifies an explicit width for the given glyph
      Throws:
      IOException - if the font could not be read
    • assignGlyphList

      private void assignGlyphList(Standard14Fonts.FontName fontName)