Class FontManager


  • public class FontManager
    extends java.lang.Object
    The manager of fonts. The class holds a reference to the font cache and information about font substitution, referenced fonts and similar.
    • Constructor Detail

      • FontManager

        public FontManager​(InternalResourceResolver resourceResolver,
                           FontDetector fontDetector,
                           FontCacheManager fontCacheManager)
        Main constructor
        Parameters:
        resourceResolver - the URI resolver
        fontDetector - the font detector
        fontCacheManager - the font cache manager
    • Method Detail

      • setResourceResolver

        public void setResourceResolver​(InternalResourceResolver resourceResolver)
        Sets the font resource resolver
        Parameters:
        resourceResolver - resource resolver
      • isBase14KerningEnabled

        public boolean isBase14KerningEnabled()
        Returns:
        true if kerning on base 14 fonts is enabled
      • setBase14KerningEnabled

        public void setBase14KerningEnabled​(boolean value)
        Controls whether kerning is activated on base 14 fonts.
        Parameters:
        value - true if kerning should be activated
      • setFontSubstitutions

        public void setFontSubstitutions​(FontSubstitutions substitutions)
        Sets the font substitutions
        Parameters:
        substitutions - font substitutions
      • getFontSubstitutions

        protected FontSubstitutions getFontSubstitutions()
        Returns the font substitution catalog
        Returns:
        the font substitution catalog
      • setCacheFile

        public void setCacheFile​(java.net.URI cacheFileURI)
        Sets the font cache file
        Parameters:
        cacheFileURI - the URI of the font cache file
      • disableFontCache

        public void disableFontCache()
        Whether or not to cache results of font triplet detection/auto-config
      • getFontCache

        public FontCache getFontCache()
        Returns the font cache instance used by this font manager.
        Returns:
        the font cache
      • saveCache

        public void saveCache()
                       throws FOPException
        Saves the FontCache as necessary
        Throws:
        FOPException - fop exception
      • deleteCache

        public void deleteCache()
                         throws FOPException
        Deletes the current FontCache file
        Throws:
        FOPException - if an error was thrown while deleting the cache
      • setup

        public void setup​(FontInfo fontInfo,
                          FontCollection[] fontCollections)
        Sets up the fonts on a given FontInfo object. The fonts to setup are defined by an array of FontCollection objects.
        Parameters:
        fontInfo - the FontInfo object to set up
        fontCollections - the array of font collections/sources
      • setReferencedFontsMatcher

        public void setReferencedFontsMatcher​(FontTriplet.Matcher matcher)
        Sets the FontTriplet.Matcher that can be used to identify the fonts that shall be referenced rather than embedded.
        Parameters:
        matcher - the font triplet matcher
      • getReferencedFontsMatcher

        public FontTriplet.Matcher getReferencedFontsMatcher()
        Gets the FontTriplet.Matcher that can be used to identify the fonts that shall be referenced rather than embedded.
        Returns:
        the font triplet matcher (or null if none is set)
      • updateReferencedFonts

        public void updateReferencedFonts​(java.util.List<EmbedFontInfo> fontInfoList)
        Updates the referenced font list using the FontManager's referenced fonts matcher (getReferencedFontsMatcher()).
        Parameters:
        fontInfoList - a font info list
      • updateReferencedFonts

        public void updateReferencedFonts​(java.util.List<EmbedFontInfo> fontInfoList,
                                          FontTriplet.Matcher matcher)
        Updates the referenced font list.
        Parameters:
        fontInfoList - a font info list
        matcher - the font triplet matcher to use
      • autoDetectFonts

        public void autoDetectFonts​(boolean autoDetectFonts,
                                    FontAdder fontAdder,
                                    boolean strict,
                                    FontEventListener listener,
                                    java.util.List<EmbedFontInfo> fontInfoList)
                             throws FOPException
        Detect fonts from the operating system via FOPs autodetect mechanism.
        Parameters:
        autoDetectFonts - if autodetect has been enabled
        fontAdder - the font adding mechanism
        strict - whether to enforce strict validation
        listener - the listener for font related events
        fontInfoList - a list of font info objects
        Throws:
        FOPException - if an exception was thrown auto-detecting fonts