Package com.itextpdf.layout.font
Class FontProvider
java.lang.Object
com.itextpdf.layout.font.FontProvider
- Direct Known Subclasses:
-
BasicFontProvider
Main entry point of font selector logic. Contains reusable
FontSet and collection of PdfFonts. FontProvider depends on PdfDocument due to PdfFont, so it cannot be reused for different documents unless reset with reset() or recreated with getFontSet(). In the former case the FontSelectorCache is reused and in the latter it's reinitialised. FontProvider the only end point for creating PdfFont.
It is allowed to use only one FontProvider per document. If additional fonts per element needed, another instance of FontSet can be used. For more details see Property.FONT_SET, getPdfFont(FontInfo, FontSet), createFontSelectorStrategy(List, FontCharacteristics, FontSet).
Note, FontProvider does not close created FontPrograms, because of possible conflicts with FontCache.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final StringThe default font-family is used byFontSelectorif it's impossible to select a font for all other set font-families -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new instance of FontProvider.FontProvider(FontSet fontSet) Creates a new instance of FontProvider.FontProvider(FontSet fontSet, String defaultFontFamily) Creates a new instance of FontProvider.FontProvider(String defaultFontFamily) Creates a new instance of FontProvider. -
Method Summary
Modifier and TypeMethodDescriptionintaddDirectory(String dir) Add all the fonts from a directory.booleanaddFont(byte[] fontData) Add font toFontSetcache.booleanAdd font toFontSetcache.booleanAdd font toFontSetcache.booleanaddFont(FontProgram fontProgram) Add font toFontSetcache.booleanaddFont(FontProgram fontProgram, String encoding) Add font toFontSetcache.booleanaddFont(FontProgram fontProgram, String encoding, Range unicodeRange) Add font toFontSetcache.booleanAdd font toFontSetcache.booleanAdd font toFontSetcache.booleanAdd font toFontSetcache.intAdd standard fonts toFontSetcache.intAdd all fonts from system directories toFontSetcache.protected FontSelectorcreateFontSelector(Collection<FontInfo> fonts, List<String> fontFamilies, FontCharacteristics fc) Create a new instance ofFontSelector.createFontSelectorStrategy(List<String> fontFamilies, FontCharacteristics fc, FontSet additionalFonts) Creates theIFontSelectorStrategyto split text into sequences of glyphs, already tied to the fonts which contain them.booleanThe method is used to determine whether the font should be cached or not by default.booleanThe method is used to determine whether the font should be embedded or not by default.getDefaultEncoding(FontProgram fontProgram) Gets the default encoding for specific font.Gets the default font-family.final FontSelectorgetFontSelector(List<String> fontFamilies, FontCharacteristics fc) CreateFontSelectoror get from cache.final FontSelectorgetFontSelector(List<String> fontFamilies, FontCharacteristics fc, FontSet additionalFonts) CreateFontSelectoror get from cache.GetsFontSet.getPdfFont(FontInfo fontInfo) Get from cache or create a new instance ofPdfFont.getPdfFont(FontInfo fontInfo, FontSet additionalFonts) Get from cache or create a new instance ofPdfFont.voidreset()ResetsPdfFont cache.voidSets factory which will be used increateFontSelectorStrategy(List, FontCharacteristics, FontSet)method.
-
Field Details
-
defaultFontFamily
The default font-family is used byFontSelectorif it's impossible to select a font for all other set font-families -
pdfFonts
-
-
Constructor Details
-
FontProvider
Creates a new instance of FontProvider.- Parameters:
-
fontSet- predefined set of fonts, could be null.
-
FontProvider
public FontProvider()Creates a new instance of FontProvider. -
FontProvider
Creates a new instance of FontProvider.- Parameters:
-
defaultFontFamily- default font family.
-
FontProvider
Creates a new instance of FontProvider.- Parameters:
-
fontSet- predefined set of fonts, could be null. -
defaultFontFamily- default font family.
-
-
Method Details
-
addFont
Add font toFontSetcache.- Parameters:
-
fontProgram- the font file which will be added to font cache. TheFontPrograminstances are normally created viaFontProgramFactory. -
encoding- font encoding to createPdfFont. Possible values for this argument are the same as forPdfFontFactory.createFont()family of methods. -
unicodeRange- sets the specific range of characters to be used from the font. - Returns:
- true, if font was successfully added, otherwise false.
-
addFont
Add font toFontSetcache.- Parameters:
-
fontProgram- the font file which will be added to font cache. TheFontPrograminstances are normally created viaFontProgramFactory. -
encoding- font encoding to createPdfFont. Possible values for this argument are the same as forPdfFontFactory.createFont()family of methods. - Returns:
- true, if font was successfully added, otherwise false.
-
addFont
Add font toFontSetcache.- Parameters:
-
fontProgram- the font file which will be added to font cache. TheFontPrograminstances are normally created viaFontProgramFactory. - Returns:
- true, if font was successfully added, otherwise false.
-
addFont
Add font toFontSetcache.- Parameters:
-
fontPath- path to the font file to add. Can be a path to file or font name. As a font name one of 14 built in fonts can be used, seeStandardFonts. If file is a true type collection, fonts in it should be addressed by index such as "msgothic.ttc,1", starting with index 0. SeeFontProgramFactory.createFont(String)for more information. -
encoding- font encoding to createPdfFont. Possible values for this argument are the same as forPdfFontFactory.createFont()family of methods. -
unicodeRange- sets the specific range of characters to be used from the font. - Returns:
- true, if font was successfully added, otherwise false.
-
addFont
Add font toFontSetcache.- Parameters:
-
fontPath- path to the font file to add. Can be a path to file or font name. As a font name one of 14 built in fonts can be used, seeStandardFonts. If file is a true type collection, fonts in it should be addressed by index such as "msgothic.ttc,1", starting with index 0. SeeFontProgramFactory.createFont(String)for more information. -
encoding- font encoding to createPdfFont. Possible values for this argument are the same as forPdfFontFactory.createFont()family of methods. - Returns:
- true, if font was successfully added, otherwise false.
-
addFont
Add font toFontSetcache.- Parameters:
-
fontPath- path to the font file to add. Can be a path to file or font name. As a font name one of 14 built in fonts can be used, seeStandardFonts. If file is a true type collection, fonts in it should be addressed by index such as "msgothic.ttc,1", starting with index 0. SeeFontProgramFactory.createFont(String)for more information. - Returns:
- true, if font was successfully added, otherwise false.
-
addFont
Add font toFontSetcache.- Parameters:
-
fontData- byte content of the font program file. -
encoding- font encoding to createPdfFont. Possible values for this argument are the same as forPdfFontFactory.createFont()family of methods. -
unicodeRange- sets the specific range of characters to be used from the font. - Returns:
- true, if font was successfully added, otherwise false.
-
addFont
Add font toFontSetcache.- Parameters:
-
fontData- byte content of the font program file. -
encoding- font encoding to createPdfFont. Possible values for this argument are the same as forPdfFontFactory.createFont()family of methods. - Returns:
- true, if font was successfully added, otherwise false.
-
addFont
public boolean addFont(byte[] fontData) Add font toFontSetcache.- Parameters:
-
fontData- byte content of the font program file. - Returns:
- true, if font was successfully added, otherwise false.
-
addDirectory
Add all the fonts from a directory.- Parameters:
-
dir- path to directory. - Returns:
- number of added fonts.
-
addSystemFonts
public int addSystemFonts()Add all fonts from system directories toFontSetcache.- Returns:
- number of added fonts.
-
addStandardPdfFonts
public int addStandardPdfFonts()Add standard fonts toFontSetcache.- Returns:
- number of added fonts.
- See Also:
-
getFontSet
GetsFontSet.- Returns:
- the font set
-
getDefaultFontFamily
Gets the default font-family.- Returns:
- the default font-family
-
getDefaultEncoding
Gets the default encoding for specific font.- Parameters:
-
fontProgram- to get default encoding - Returns:
- the default encoding
- See Also:
-
getDefaultCacheFlag
public boolean getDefaultCacheFlag()The method is used to determine whether the font should be cached or not by default.NOTE: This method can be overridden to customize behaviour.
- Returns:
- the default cache flag
-
getDefaultEmbeddingFlag
public boolean getDefaultEmbeddingFlag()The method is used to determine whether the font should be embedded or not by default.NOTE: This method can be overridden to customize behaviour.
- Returns:
- the default embedding flag
-
setFontSelectorStrategyFactory
Sets factory which will be used increateFontSelectorStrategy(List, FontCharacteristics, FontSet)method.- Parameters:
-
factory- the factory which will be used to create font selector strategies
-
createFontSelectorStrategy
public IFontSelectorStrategy createFontSelectorStrategy(List<String> fontFamilies, FontCharacteristics fc, FontSet additionalFonts) Creates theIFontSelectorStrategyto split text into sequences of glyphs, already tied to the fonts which contain them. The fonts can be taken from the added fonts to the font provider and are chosen based on font-families list and desired font characteristics.- Parameters:
-
fontFamilies- target font families to createFontSelectorfor sequences of glyphs. -
fc- instance ofFontCharacteristicsto createFontSelectorfor sequences of glyphs. -
additionalFonts- set which provides fonts additionally to the fonts added to font provider. Combined set of font provider fonts and additional fonts is used when choosing a single font for a sequence of glyphs. Additional fonts will only be used for the given font selector strategy instance and will not be otherwise preserved in font provider. - Returns:
-
IFontSelectorStrategyinstance
-
getFontSelector
CreateFontSelectoror get from cache.- Parameters:
-
fontFamilies- target font families. -
fc- instance ofFontCharacteristics. - Returns:
-
an instance of
FontSelector. - See Also:
-
getFontSelector
public final FontSelector getFontSelector(List<String> fontFamilies, FontCharacteristics fc, FontSet additionalFonts) CreateFontSelectoror get from cache.- Parameters:
-
fontFamilies- target font families. -
fc- instance ofFontCharacteristics. -
additionalFonts- set which provides fonts additionally to the fonts added to font provider. Combined set of font provider fonts and additional fonts is used when choosing a single font forFontSelector. Additional fonts will only be used for the given font selector strategy instance and will not be otherwise preserved in font provider. - Returns:
-
an instance of
FontSelector. - See Also:
-
createFontSelector
protected FontSelector createFontSelector(Collection<FontInfo> fonts, List<String> fontFamilies, FontCharacteristics fc) Create a new instance ofFontSelector. While caching is main responsibility ofgetFontSelector(List, FontCharacteristics, FontSet). This method just create a new instance ofFontSelector.- Parameters:
-
fonts- Set of all available fonts in current context. -
fontFamilies- target font families. -
fc- instance ofFontCharacteristics. - Returns:
-
an instance of
FontSelector.
-
getPdfFont
Get from cache or create a new instance ofPdfFont.- Parameters:
-
fontInfo- font info, to createFontProgramandPdfFont. - Returns:
-
cached or new instance of
PdfFont.
-
getPdfFont
Get from cache or create a new instance ofPdfFont.- Parameters:
-
fontInfo- font info, to createFontProgramandPdfFont. -
additionalFonts- set of additional fonts to consider. - Returns:
-
cached or new instance of
PdfFont.
-
reset
public void reset()
-