Package org.apache.fop.fonts
Class FontManager
- java.lang.Object
-
- org.apache.fop.fonts.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.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
enableBase14Kerning
Allows enabling kerning on the base 14 fonts, default is falseprivate FontCacheManager
fontCacheManager
private FontDetector
fontDetector
private FontSubstitutions
fontSubstitutions
Font substitutionsprivate FontTriplet.Matcher
referencedFontsMatcher
FontTriplet matcher for fonts that shall be referenced rather than embedded.private InternalResourceResolver
resourceResolver
The resource resolver
-
Constructor Summary
Constructors Constructor Description FontManager(InternalResourceResolver resourceResolver, FontDetector fontDetector, FontCacheManager fontCacheManager)
Main constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
autoDetectFonts(boolean autoDetectFonts, FontAdder fontAdder, boolean strict, FontEventListener listener, java.util.List<EmbedFontInfo> fontInfoList)
Detect fonts from the operating system via FOPs autodetect mechanism.void
deleteCache()
Deletes the current FontCache filevoid
disableFontCache()
Whether or not to cache results of font triplet detection/auto-configFontCache
getFontCache()
Returns the font cache instance used by this font manager.protected FontSubstitutions
getFontSubstitutions()
Returns the font substitution catalogFontTriplet.Matcher
getReferencedFontsMatcher()
Gets theFontTriplet.Matcher
that can be used to identify the fonts that shall be referenced rather than embedded.InternalResourceResolver
getResourceResolver()
boolean
isBase14KerningEnabled()
void
saveCache()
Saves the FontCache as necessaryvoid
setBase14KerningEnabled(boolean value)
Controls whether kerning is activated on base 14 fonts.void
setCacheFile(java.net.URI cacheFileURI)
Sets the font cache filevoid
setFontSubstitutions(FontSubstitutions substitutions)
Sets the font substitutionsvoid
setReferencedFontsMatcher(FontTriplet.Matcher matcher)
Sets theFontTriplet.Matcher
that can be used to identify the fonts that shall be referenced rather than embedded.void
setResourceResolver(InternalResourceResolver resourceResolver)
Sets the font resource resolvervoid
setup(FontInfo fontInfo, FontCollection[] fontCollections)
Sets up the fonts on a given FontInfo object.void
updateReferencedFonts(java.util.List<EmbedFontInfo> fontInfoList)
Updates the referenced font list using the FontManager's referenced fonts matcher (getReferencedFontsMatcher()
).void
updateReferencedFonts(java.util.List<EmbedFontInfo> fontInfoList, FontTriplet.Matcher matcher)
Updates the referenced font list.
-
-
-
Field Detail
-
resourceResolver
private InternalResourceResolver resourceResolver
The resource resolver
-
fontDetector
private final FontDetector fontDetector
-
fontCacheManager
private FontCacheManager fontCacheManager
-
fontSubstitutions
private FontSubstitutions fontSubstitutions
Font substitutions
-
enableBase14Kerning
private boolean enableBase14Kerning
Allows enabling kerning on the base 14 fonts, default is false
-
referencedFontsMatcher
private FontTriplet.Matcher referencedFontsMatcher
FontTriplet matcher for fonts that shall be referenced rather than embedded.
-
-
Constructor Detail
-
FontManager
public FontManager(InternalResourceResolver resourceResolver, FontDetector fontDetector, FontCacheManager fontCacheManager)
Main constructor- Parameters:
resourceResolver
- the URI resolverfontDetector
- the font detectorfontCacheManager
- the font cache manager
-
-
Method Detail
-
setResourceResolver
public void setResourceResolver(InternalResourceResolver resourceResolver)
Sets the font resource resolver- Parameters:
resourceResolver
- resource resolver
-
getResourceResolver
public InternalResourceResolver getResourceResolver()
-
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 ofFontCollection
objects.- Parameters:
fontInfo
- the FontInfo object to set upfontCollections
- the array of font collections/sources
-
setReferencedFontsMatcher
public void setReferencedFontsMatcher(FontTriplet.Matcher matcher)
Sets theFontTriplet.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 theFontTriplet.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 listmatcher
- 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 enabledfontAdder
- the font adding mechanismstrict
- whether to enforce strict validationlistener
- the listener for font related eventsfontInfoList
- a list of font info objects- Throws:
FOPException
- if an exception was thrown auto-detecting fonts
-
-