SingleByteFont (Apache FOP 2.7 API)
Date: 2022-01-12

org.apache.fop.fonts

## Class SingleByteFont

- java.lang.Object
- - org.apache.fop.fonts.Typeface
  - - org.apache.fop.fonts.CustomFont
    - - org.apache.fop.fonts.SingleByteFont

- All Implemented Interfaces:
    FontDescriptor, FontMetrics, MutableFont

      public class SingleByteFont
      extends CustomFont

  Generic SingleByte font

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `SingleByteFont.UnencodedCharacter`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected SingleByteEncoding` | `mapping`
    `protected int[]` | `width`

    - ### Fields inherited from class org.apache.fop.fonts.CustomFont

      `additionalEncodings, cmap, svgs, unencodedCharacters`

    - ### Fields inherited from class org.apache.fop.fonts.Typeface

      `eventListener, NOT_FOUND`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SingleByteFont(InternalResourceResolver resourceResolver)`
    `SingleByteFont(InternalResourceResolver resourceResolver, EmbeddingMode embeddingMode)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addUnencodedCharacter(NamedCharacter ch, int width, java.awt.Rectangle bbox)` Adds an unencoded character (one that is not supported by the primary encoding).
    `void` | `encodeAllUnencodedCharacters()` Makes all unencoded characters available through additional encodings.
    `int[]` | `getAdditionalWidths(int index)` Returns an array with the widths for an additional encoding.
    `java.awt.Rectangle` | `getBoundingBox(int glyphIndex, int size)` Returns the bounding box of the glyph at the given index, for the given font size.
    `SingleByteEncoding` | `getEncoding()` Returns the code point mapping (encoding) of this font.
    `java.lang.String` | `getEncodingName()` Get the encoding of the font.
    `int` | `getGIDFromChar(char ch)`
    `java.lang.String` | `getGlyphName(int idx)`
    `OpenFont.PostScriptVersion` | `getTrueTypePostScriptVersion()` Returns the version of the PostScript table stored in the TrueType font represented by this instance.
    `char` | `getUnicodeFromGID(int glyphIndex)` Returns the character from it's original glyph index in the font
    `char` | `getUnicodeFromSelector(int selector)`
    `java.util.Map<java.lang.Integer,java.lang.String>` | `getUsedGlyphNames()`
    `java.util.Map<java.lang.Integer,java.lang.Integer>` | `getUsedGlyphs()` Returns a Map of used Glyphs.
    `int` | `getWidth(int i, int size)` Return the width (in 1/1000ths of point size) of the character at code point i.
    `int[]` | `getWidths()` Return the array of widths.
    `boolean` | `hasChar(char c)` Determines whether this font contains a particular character/glyph.
    `boolean` | `isEmbeddable()` Indicates if this font may be embedded.
    `boolean` | `isSubsetEmbedded()` Indicates whether this font is subset embedded.
    `boolean` | `isUsingNativeEncoding()` Indicates whether this font is configured to use its native encoding.
    `char` | `mapChar(char c)` Map a Unicode character to a code point in the font.
    `void` | `mapUsedGlyphName(int gid, java.lang.String value)`
    `void` | `setBoundingBox(int index, java.awt.Rectangle bbox)`
    `void` | `setEncoding(CodePointMapping encoding)` Sets the encoding of the font.
    `void` | `setEncoding(java.lang.String encoding)` Sets the encoding of the font.
    `void` | `setTrueTypePostScriptVersion(OpenFont.PostScriptVersion version)` Sets the version of the PostScript table stored in the TrueType font represented by this instance.
    `void` | `setUseNativeEncoding(boolean value)` Controls whether the font is configured to use its native encoding or if it may need to be re-encoded for the target format.
    `void` | `setWidth(int index, int w)` Sets a width for a character.
    `protected void` | `updateMapping(java.lang.String encoding)` Updates the mapping variable based on the encoding.

    - ### Methods inherited from class org.apache.fop.fonts.CustomFont

      `getAdditionalEncoding, getAdditionalEncodingCount, getAscender, getAscender, getCapHeight, getCapHeight, getCMap, getDescender, getDescender, getEmbeddingMode, getEmbedFileURI, getEmbedFontName, getEmbedResourceName, getFamilyNames, getFirstChar, getFlags, getFontBBox, getFontName, getFontSubName, getFontType, getFontURI, getFullName, getInputStream, getItalicAngle, getKerningInfo, getLastChar, getMissingWidth, getSimulateStyle, getStemV, getStrikeoutPosition, getStrikeoutThickness, getStrippedFontName, getUnderlinePosition, getUnderlineThickness, getWeight, getXHeight, hasAdditionalEncodings, hasKerningInfo, hasSVG, isAdvancedEnabled, isKerningEnabled, isSymbolicFont, mapUnencodedChar, putKerningEntry, replaceKerningMap, setAdvancedEnabled, setAscender, setCapHeight, setCMap, setDescender, setEmbeddingMode, setEmbedResourceName, setEmbedURI, setFamilyNames, setFirstChar, setFlags, setFontBBox, setFontName, setFontSubFamilyName, setFontType, setFontURI, setFullName, setItalicAngle, setKerningEnabled, setLastChar, setMissingWidth, setSimulateStyle, setStemV, setStrikeoutPosition, setStrikeoutThickness, setSVG, setUnderlinePosition, setUnderlineThickness, setWeight, setXHeight`

    - ### Methods inherited from class org.apache.fop.fonts.Typeface

      `getMaxAscent, hadMappingOperations, hasFeature, isCID, isMultiByte, notifyMapOperation, setEventListener, toString, warnMissingGlyph`

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

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

    - ### Methods inherited from interface org.apache.fop.fonts.FontMetrics

      `getMaxAscent, hasFeature, isMultiByte`

- - ### Field Detail

    - #### mapping

          protected SingleByteEncoding mapping

    - #### width

          protected int[] width

  - ### Constructor Detail

    - #### SingleByteFont

          public SingleByteFont(InternalResourceResolver resourceResolver)

    - #### SingleByteFont

          public SingleByteFont(InternalResourceResolver resourceResolver,
                                EmbeddingMode embeddingMode)

  - ### Method Detail

    - #### isEmbeddable

          public boolean isEmbeddable()

      Indicates if this font may be embedded.
      Returns:
        True, if embedding is possible/permitted

    - #### isSubsetEmbedded

          public boolean isSubsetEmbedded()

      Indicates whether this font is subset embedded.
      Returns:
        true if this font is subset embedded

    - #### getEncodingName

          public java.lang.String getEncodingName()

      Get the encoding of the font.
      Specified by:
        `getEncodingName` in class `Typeface`
      Returns:
        the encoding

    - #### getEncoding

          public SingleByteEncoding getEncoding()

      Returns the code point mapping (encoding) of this font.
      Returns:
        the code point mapping

    - #### getWidth

          public int getWidth(int i,
                              int size)

      Return the width (in 1/1000ths of point size) of the character at code point i.
      Parameters:
        `i` - code point index
        `size` - font size
      Returns:
        the width of the character

    - #### getWidths

          public int[] getWidths()

      Return the array of widths.

      This is used to get an array for inserting in an output format. It should not be used for lookup.

      Returns:
        an array of widths

    - #### getBoundingBox

          public java.awt.Rectangle getBoundingBox(int glyphIndex,
                                                   int size)

      Description copied from interface: `FontMetrics`
      Returns the bounding box of the glyph at the given index, for the given font size.
      Parameters:
        `glyphIndex` - glyph index
        `size` - font size
      Returns:
        the scaled bounding box scaled in 1/1000ths of the given size

    - #### mapChar

          public char mapChar(char c)

      Map a Unicode character to a code point in the font.
      Specified by:
        `mapChar` in class `Typeface`
      Parameters:
        `c` - character to map
      Returns:
        the mapped character

    - #### hasChar

          public boolean hasChar(char c)

      Determines whether this font contains a particular character/glyph.
      Specified by:
        `hasChar` in class `Typeface`
      Parameters:
        `c` - character to check
      Returns:
        True if the character is supported, Falso otherwise

    - #### updateMapping

          protected void updateMapping(java.lang.String encoding)

      Updates the mapping variable based on the encoding.
      Parameters:
        `encoding` - the name of the encoding

    - #### setEncoding

          public void setEncoding(java.lang.String encoding)

      Sets the encoding of the font.
      Parameters:
        `encoding` - the encoding (ex. "WinAnsiEncoding" or "SymbolEncoding")

    - #### setEncoding

          public void setEncoding(CodePointMapping encoding)

      Sets the encoding of the font.
      Parameters:
        `encoding` - the encoding information

    - #### setUseNativeEncoding

          public void setUseNativeEncoding(boolean value)

      Controls whether the font is configured to use its native encoding or if it may need to be re-encoded for the target format.
      Parameters:
        `value` - true indicates that the configured encoding is the font's native encoding

    - #### isUsingNativeEncoding

          public boolean isUsingNativeEncoding()

      Indicates whether this font is configured to use its native encoding. This method is used to determine whether the font needs to be re-encoded.
      Returns:
        true if the font uses its native encoding.

    - #### setWidth

          public void setWidth(int index,
                               int w)

      Sets a width for a character.
      Parameters:
        `index` - index of the character
        `w` - the width of the character

    - #### setBoundingBox

          public void setBoundingBox(int index,
                                     java.awt.Rectangle bbox)

    - #### addUnencodedCharacter

          public void addUnencodedCharacter(NamedCharacter ch,
                                            int width,
                                            java.awt.Rectangle bbox)

      Adds an unencoded character (one that is not supported by the primary encoding).
      Overrides:
        `addUnencodedCharacter` in class `CustomFont`
      Parameters:
        `ch` - the named character
        `width` - the width of the character

    - #### encodeAllUnencodedCharacters

          public void encodeAllUnencodedCharacters()

      Makes all unencoded characters available through additional encodings. This method is used in cases where the fonts need to be encoded in the target format before all text of the document is processed (for example in PostScript when resource optimization is disabled).

    - #### getAdditionalWidths

          public int[] getAdditionalWidths(int index)

      Returns an array with the widths for an additional encoding.
      Parameters:
        `index` - the index of the additional encoding
      Returns:
        the width array

    - #### setTrueTypePostScriptVersion

          public void setTrueTypePostScriptVersion(OpenFont.PostScriptVersion version)

      Sets the version of the PostScript table stored in the TrueType font represented by this instance.
      Parameters:
        `version` - version of the post table

    - #### getTrueTypePostScriptVersion

          public OpenFont.PostScriptVersion getTrueTypePostScriptVersion()

      Returns the version of the PostScript table stored in the TrueType font represented by this instance.
      Returns:
        the version of the post table

    - #### getUsedGlyphs

          public java.util.Map<java.lang.Integer,java.lang.Integer> getUsedGlyphs()

      Returns a Map of used Glyphs.
      Specified by:
        `getUsedGlyphs` in class `CustomFont`
      Returns:
        Map Map of used Glyphs

    - #### getUnicodeFromSelector

          public char getUnicodeFromSelector(int selector)

    - #### getGIDFromChar

          public int getGIDFromChar(char ch)

    - #### getUnicodeFromGID

          public char getUnicodeFromGID(int glyphIndex)

      Description copied from class: `CustomFont`
      Returns the character from it's original glyph index in the font
      Specified by:
        `getUnicodeFromGID` in class `CustomFont`
      Parameters:
        `glyphIndex` - The original index of the character
      Returns:
        The character

    - #### mapUsedGlyphName

          public void mapUsedGlyphName(int gid,
                                       java.lang.String value)

    - #### getUsedGlyphNames

          public java.util.Map<java.lang.Integer,java.lang.String> getUsedGlyphNames()

    - #### getGlyphName

          public java.lang.String getGlyphName(int idx)

Copyright 1999-2022 The Apache Software Foundation. All Rights Reserved.