org.apache.fop.fonts

## Class FontLoader

- java.lang.Object
- - org.apache.fop.fonts.FontLoader

- Direct Known Subclasses:
    OFFontLoader, Type1FontLoader

      public abstract class FontLoader
      extends Object

  Base class for font loaders.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `embedded` true if the font will be embedded, false if it will be referenced only.
    `protected URI` | `fontFileURI` URI representing the font file
    `protected boolean` | `loaded` true if the font has been loaded
    `protected static org.apache.commons.logging.Log` | `log` logging instance
    `protected InternalResourceResolver` | `resourceResolver` the resource resolver to use for font URI resolution
    `protected CustomFont` | `returnFont` the loaded font
    `protected boolean` | `useAdvanced` true if advanced typographic information shall be loaded if available.
    `protected boolean` | `useKerning` true if kerning information false be loaded if available.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FontLoader(URI fontFileURI, boolean embedded, boolean useKerning, boolean useAdvanced, InternalResourceResolver resourceResolver)` Default constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `CustomFont` | `getFont()` Returns the custom font that was read using this instance of FontLoader.
    `static CustomFont` | `loadFont(FontUris fontUris, String subFontName, boolean embedded, EmbeddingMode embeddingMode, EncodingMode encodingMode, boolean useKerning, boolean useAdvanced, InternalResourceResolver resourceResolver, boolean simulateStyle, boolean embedAsType1, boolean useSVG)` Loads a custom font from a URI.
    `protected abstract void` | `read()` Reads/parses the font data.

    - ### 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

      logging instance

    - #### fontFileURI

          protected final URI fontFileURI

      URI representing the font file

    - #### resourceResolver

          protected final InternalResourceResolver resourceResolver

      the resource resolver to use for font URI resolution

    - #### returnFont

          protected CustomFont returnFont

      the loaded font

    - #### loaded

          protected boolean loaded

      true if the font has been loaded

    - #### embedded

          protected boolean embedded

      true if the font will be embedded, false if it will be referenced only.

    - #### useKerning

          protected boolean useKerning

      true if kerning information false be loaded if available.

    - #### useAdvanced

          protected boolean useAdvanced

      true if advanced typographic information shall be loaded if available.

  - ### Constructor Detail

    - #### FontLoader

          public FontLoader(URI fontFileURI,
                            boolean embedded,
                            boolean useKerning,
                            boolean useAdvanced,
                            InternalResourceResolver resourceResolver)

      Default constructor.
      Parameters:
        `fontFileURI` - the URI to the PFB file of a Type 1 font
        `embedded` - indicates whether the font is embedded or referenced
        `useKerning` - indicates whether kerning information shall be loaded if available
        `useAdvanced` - indicates whether advanced typographic information shall be loaded if available
        `resourceResolver` - the font resolver used to resolve URIs

  - ### Method Detail

    - #### loadFont

          public static CustomFont loadFont(FontUris fontUris,
                                            String subFontName,
                                            boolean embedded,
                                            EmbeddingMode embeddingMode,
                                            EncodingMode encodingMode,
                                            boolean useKerning,
                                            boolean useAdvanced,
                                            InternalResourceResolver resourceResolver,
                                            boolean simulateStyle,
                                            boolean embedAsType1,
                                            boolean useSVG)
                                     throws IOException

      Loads a custom font from a URI. In the case of Type 1 fonts, the PFB file must be specified.
      Parameters:
        `fontUris` - the URI to the font
        `subFontName` - the sub-fontname of a font (for TrueType Collections, null otherwise)
        `embedded` - indicates whether the font is embedded or referenced
        `embeddingMode` - the embedding mode of the font
        `encodingMode` - the requested encoding mode
        `useKerning` - indicates whether kerning information should be loaded if available
        `useAdvanced` - indicates whether advanced typographic information shall be loaded if available
        `resourceResolver` - the font resolver to use when resolving URIs
      Returns:
        the newly loaded font
      Throws:
        `IOException` - In case of an I/O error

    - #### read

          protected abstract void read()
                                throws IOException

      Reads/parses the font data.
      Throws:
        `IOException` - In case of an I/O error

    - #### getFont

          public CustomFont getFont()
                             throws IOException

      Returns the custom font that was read using this instance of FontLoader.
      Returns:
        the newly loaded font
      Throws:
        `IOException` - if an I/O error occurs

Copyright © 2025 Apache Software Foundation. All rights reserved.