Class FontLoader

java.lang.Object
org.docx4j.fonts.fop.fonts.FontLoader
Direct Known Subclasses:
TTFFontLoader, Type1FontLoader

public abstract class FontLoader
extends java.lang.Object
Base class for font loaders.
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected boolean embedded
    true if the font will be embedded, false if it will be referenced only.
    protected java.lang.String fontFileURI
    URI representing the font file
    protected boolean loaded
    true if the font has been loaded
    protected static org.slf4j.Logger log
    logging instance
    protected FontResolver resolver
    the FontResolver to use for font URI resolution
    protected CustomFont returnFont
    the loaded font
    protected boolean useKerning
    true if kerning information shall be loaded if available.
  • Constructor Summary

    Constructors 
    Constructor Description
    FontLoader​(java.lang.String fontFileURI, boolean embedded, boolean useKerning, FontResolver resolver)
    Default constructor.
  • Method Summary

    Modifier and Type Method Description
    CustomFont getFont()
    Returns the custom font that was read using this instance of FontLoader.
    static CustomFont loadFont​(java.io.File fontFile, java.lang.String subFontName, boolean embedded, EncodingMode encodingMode, FontResolver resolver)
    Loads a custom font from a File.
    static CustomFont loadFont​(java.lang.String fontFileURI, java.lang.String subFontName, boolean embedded, EncodingMode encodingMode, boolean useKerning, FontResolver resolver)
    Loads a custom font from a URI.
    static CustomFont loadFont​(java.net.URL fontUrl, java.lang.String subFontName, boolean embedded, EncodingMode encodingMode, FontResolver resolver)
    Loads a custom font from an URL.
    static java.io.InputStream openFontUri​(FontResolver resolver, java.lang.String uri)
    Opens a font URI and returns an input stream.
    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 Details

    • log

      protected static org.slf4j.Logger log
      logging instance
    • fontFileURI

      protected java.lang.String fontFileURI
      URI representing the font file
    • resolver

      protected FontResolver resolver
      the FontResolver 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 shall be loaded if available.
  • Constructor Details

    • FontLoader

      public FontLoader​(java.lang.String fontFileURI, boolean embedded, boolean useKerning, FontResolver resolver)
      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
      resolver - the font resolver used to resolve URIs
  • Method Details

    • loadFont

      public static CustomFont loadFont​(java.io.File fontFile, java.lang.String subFontName, boolean embedded, EncodingMode encodingMode, FontResolver resolver) throws java.io.IOException
      Loads a custom font from a File. In the case of Type 1 fonts, the PFB file must be specified.
      Parameters:
      fontFile - the File representation of the font
      subFontName - the sub-fontname of a font (for TrueType Collections, null otherwise)
      embedded - indicates whether the font is embedded or referenced
      encodingMode - the requested encoding mode
      resolver - the font resolver to use when resolving URIs
      Returns:
      the newly loaded font
      Throws:
      java.io.IOException - In case of an I/O error
    • loadFont

      public static CustomFont loadFont​(java.net.URL fontUrl, java.lang.String subFontName, boolean embedded, EncodingMode encodingMode, FontResolver resolver) throws java.io.IOException
      Loads a custom font from an URL. In the case of Type 1 fonts, the PFB file must be specified.
      Parameters:
      fontUrl - the URL representation of the font
      subFontName - the sub-fontname of a font (for TrueType Collections, null otherwise)
      embedded - indicates whether the font is embedded or referenced
      encodingMode - the requested encoding mode
      resolver - the font resolver to use when resolving URIs
      Returns:
      the newly loaded font
      Throws:
      java.io.IOException - In case of an I/O error
    • loadFont

      public static CustomFont loadFont​(java.lang.String fontFileURI, java.lang.String subFontName, boolean embedded, EncodingMode encodingMode, boolean useKerning, FontResolver resolver) throws java.io.IOException
      Loads a custom font from a URI. In the case of Type 1 fonts, the PFB file must be specified.
      Parameters:
      fontFileURI - 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
      encodingMode - the requested encoding mode
      useKerning - indicates whether kerning information should be loaded if available
      resolver - the font resolver to use when resolving URIs
      Returns:
      the newly loaded font
      Throws:
      java.io.IOException - In case of an I/O error
    • openFontUri

      public static java.io.InputStream openFontUri​(FontResolver resolver, java.lang.String uri) throws java.io.IOException, java.net.MalformedURLException
      Opens a font URI and returns an input stream.
      Parameters:
      resolver - the FontResolver to use for font URI resolution
      uri - the URI representing the font
      Returns:
      the InputStream to read the font from.
      Throws:
      java.io.IOException - In case of an I/O error
      java.net.MalformedURLException - If an invalid URL is built
    • read

      protected abstract void read() throws java.io.IOException
      Reads/parses the font data.
      Throws:
      java.io.IOException - In case of an I/O error
    • getFont

      public CustomFont getFont() throws java.io.IOException
      Returns the custom font that was read using this instance of FontLoader.
      Returns:
      the newly loaded font
      Throws:
      java.io.IOException - if an I/O error occurs