Package com.openhtmltopdf.java2d
Class Java2DFontResolver
- java.lang.Object
-
- com.openhtmltopdf.java2d.Java2DFontResolver
-
- All Implemented Interfaces:
FontResolver
public class Java2DFontResolver extends java.lang.Object implements FontResolver
REsolves an AWT font instance from a list of CSS font families and characteristics.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classJava2DFontResolver.FileFontDescriptionprivate static classJava2DFontResolver.FontDescriptionprivate static classJava2DFontResolver.InputStreamFontDescription
-
Field Summary
Fields Modifier and Type Field Description private java.util.HashMap<java.lang.String,FontFamily<Java2DFontResolver.FontDescription>>_fontFamiliesprivate SharedContext_sharedContextprivate java.util.HashMap<java.lang.String,java.awt.Font>availableFontsHashMap of base fonts, from which we can derive a concrete instance at the correct size, weight, etc.private java.util.HashMap<java.lang.String,java.awt.Font>instanceHashMap of concrete instances of fonts including size, weight, etc.
-
Constructor Summary
Constructors Constructor Description Java2DFontResolver(SharedContext sharedCtx, boolean useEnvironmentFonts)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description private voidaddFontFaceFont(java.lang.String fontFamilyNameOverride, IdentValue fontWeightOverride, IdentValue fontStyleOverride, java.lang.String uri)voidaddFontFile(java.io.File fontFile, java.lang.String fontFamilyNameOverride, java.lang.Integer fontWeightOverride, IdentValue fontStyleOverride)Add a font using a existing file.voidaddInputStreamFont(FSSupplier<java.io.InputStream> fontSupplier, java.lang.String fontFamilyNameOverride, java.lang.Integer fontWeightOverride, IdentValue fontStyleOverride)protected static java.awt.FontcreateFont(SharedContext ctx, java.awt.Font rootFont, float size, IdentValue weight, IdentValue style, IdentValue variant)Creates a concrete instance of a font at specified size, weight, style and variant.voidflushCache()Deprecated.private FontFamily<Java2DFontResolver.FontDescription>getFontFamily(java.lang.String fontFamilyName)protected static java.lang.StringgetFontInstanceHashName(SharedContext ctx, java.lang.String name, float size, IdentValue weight, IdentValue style, IdentValue variant)Gets the hash key for a concrete instance of a font.voidimportFontFaces(java.util.List<FontFaceRule> fontFaces)private voidinit()private java.lang.StringnormalizeFontFamily(java.lang.String fontFamily)FSFontresolveFont(SharedContext renderingContext, FontSpecification spec)FSFontresolveFont(SharedContext ctx, java.lang.String[] families, float size, IdentValue weight, IdentValue style, IdentValue variant)Resolves a list of font families.private java.awt.FontresolveFontFaceBaseFont(java.lang.String normalizedFontFamily, float size, IdentValue weight, IdentValue style)voidsetFontMapping(java.lang.String name, java.awt.Font font)Sets the fontMapping attribute of the FontResolver object
-
-
-
Field Detail
-
instanceHash
private final java.util.HashMap<java.lang.String,java.awt.Font> instanceHash
Map of concrete instances of fonts including size, weight, etc.
-
availableFontsHash
private final java.util.HashMap<java.lang.String,java.awt.Font> availableFontsHash
Map of base fonts, from which we can derive a concrete instance at the correct size, weight, etc. Note: The value is initially null until we need the given base font.
-
_sharedContext
private final SharedContext _sharedContext
-
_fontFamilies
private final java.util.HashMap<java.lang.String,FontFamily<Java2DFontResolver.FontDescription>> _fontFamilies
-
-
Constructor Detail
-
Java2DFontResolver
public Java2DFontResolver(SharedContext sharedCtx, boolean useEnvironmentFonts)
-
-
Method Detail
-
init
private void init()
-
flushCache
@Deprecated public void flushCache()
Deprecated.
-
importFontFaces
public void importFontFaces(java.util.List<FontFaceRule> fontFaces)
-
addInputStreamFont
public void addInputStreamFont(FSSupplier<java.io.InputStream> fontSupplier, java.lang.String fontFamilyNameOverride, java.lang.Integer fontWeightOverride, IdentValue fontStyleOverride)
-
addFontFaceFont
private void addFontFaceFont(java.lang.String fontFamilyNameOverride, IdentValue fontWeightOverride, IdentValue fontStyleOverride, java.lang.String uri)
-
addFontFile
public void addFontFile(java.io.File fontFile, java.lang.String fontFamilyNameOverride, java.lang.Integer fontWeightOverride, IdentValue fontStyleOverride)Add a font using a existing file. Does not handle true type collections.
-
getFontFamily
private FontFamily<Java2DFontResolver.FontDescription> getFontFamily(java.lang.String fontFamilyName)
-
normalizeFontFamily
private java.lang.String normalizeFontFamily(java.lang.String fontFamily)
-
resolveFontFaceBaseFont
private java.awt.Font resolveFontFaceBaseFont(java.lang.String normalizedFontFamily, float size, IdentValue weight, IdentValue style)
-
resolveFont
public FSFont resolveFont(SharedContext ctx, java.lang.String[] families, float size, IdentValue weight, IdentValue style, IdentValue variant)
Resolves a list of font families. Search order for each family is: 1. Concrete fonts with correct size that have already been used. 2. Font face fonts. 3. System fonts.
-
setFontMapping
public void setFontMapping(java.lang.String name, java.awt.Font font)Sets the fontMapping attribute of the FontResolver object- Parameters:
name- The new fontMapping valuefont- The new fontMapping value
-
createFont
protected static java.awt.Font createFont(SharedContext ctx, java.awt.Font rootFont, float size, IdentValue weight, IdentValue style, IdentValue variant)
Creates a concrete instance of a font at specified size, weight, style and variant.
-
getFontInstanceHashName
protected static java.lang.String getFontInstanceHashName(SharedContext ctx, java.lang.String name, float size, IdentValue weight, IdentValue style, IdentValue variant)
Gets the hash key for a concrete instance of a font. This incorporates size, weight, etc.
-
resolveFont
public FSFont resolveFont(SharedContext renderingContext, FontSpecification spec)
- Specified by:
resolveFontin interfaceFontResolver
-
-