public class FileFontSource
Example:
Shows how to use a font file in the local file system as a font source.FileFontSource fileFontSource = new FileFontSource(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", 0); Document doc = new Document(); doc.setFontSettings(new FontSettings()); doc.getFontSettings().setFontsSources(new FontSourceBase[]{fileFontSource}); Assert.assertEquals(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", fileFontSource.getFilePath()); Assert.assertEquals(FontSourceType.FONT_FILE, fileFontSource.getType()); Assert.assertEquals(0, fileFontSource.getPriority());
Constructor Summary |
---|
FileFontSource(java.lang.StringfilePath)
Ctor. |
FileFontSource(java.lang.StringfilePath, intpriority)
Ctor. |
FileFontSource(java.lang.StringfilePath, intpriority, java.lang.StringcacheKey)
Ctor. |
Property Getters/Setters Summary | ||
---|---|---|
java.lang.String | getCacheKey() | |
The key of this source in the cache.
|
||
java.lang.String | getFilePath() | |
Path to the font file.
|
||
int | getPriority() | |
Returns the font source priority.
|
||
int | getType() | |
Returns the type of the font source.
The value of the property is FontSourceType integer constant. |
||
IWarningCallback | getWarningCallback() | |
void | ||
Called during processing of font source when an issue is detected that might result in formatting fidelity loss. |
Method Summary | ||
---|---|---|
java.util.ArrayList<PhysicalFontInfo> | getAvailableFonts() | |
Returns list of fonts available via this source.
|
public FileFontSource(java.lang.String filePath)
filePath
- Path to font file.Example:
Shows how to use a font file in the local file system as a font source.FileFontSource fileFontSource = new FileFontSource(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", 0); Document doc = new Document(); doc.setFontSettings(new FontSettings()); doc.getFontSettings().setFontsSources(new FontSourceBase[]{fileFontSource}); Assert.assertEquals(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", fileFontSource.getFilePath()); Assert.assertEquals(FontSourceType.FONT_FILE, fileFontSource.getType()); Assert.assertEquals(0, fileFontSource.getPriority());
public FileFontSource(java.lang.String filePath, int priority)
filePath
- Path to font file.priority
- Font source priority. See the Example:
Shows how to use a font file in the local file system as a font source.FileFontSource fileFontSource = new FileFontSource(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", 0); Document doc = new Document(); doc.setFontSettings(new FontSettings()); doc.getFontSettings().setFontsSources(new FontSourceBase[]{fileFontSource}); Assert.assertEquals(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", fileFontSource.getFilePath()); Assert.assertEquals(FontSourceType.FONT_FILE, fileFontSource.getType()); Assert.assertEquals(0, fileFontSource.getPriority());
public FileFontSource(java.lang.String filePath, int priority, java.lang.String cacheKey)
filePath
- Path to font file.priority
- Font source priority. See the cacheKey
- The key of this source in the cache. See Example:
Shows how to speed up the font cache initialization process.@Test public void loadFontSearchCache() throws Exception { final String CACHE_KEY_1 = "Arvo"; final String CACHE_KEY_2 = "Arvo-Bold"; FontSettings parsedFonts = new FontSettings(); FontSettings loadedCache = new FontSettings(); parsedFonts.setFontsSources(new FontSourceBase[] { new FileFontSource(getFontsDir() + "Arvo-Regular.ttf", 0, CACHE_KEY_1), new FileFontSource(getFontsDir() + "Arvo-Bold.ttf", 0, CACHE_KEY_2) }); try (ByteArrayOutputStream cacheStream = new ByteArrayOutputStream()) { parsedFonts.saveSearchCache(cacheStream); loadedCache.setFontsSources(new FontSourceBase[] { new SearchCacheStream(CACHE_KEY_1), new MemoryFontSource(Files.readAllBytes(Paths.get(getFontsDir() + "Arvo-Bold.ttf")), 0, CACHE_KEY_2) }, cacheStream); } Assert.assertEquals(parsedFonts.getFontsSources().length, loadedCache.getFontsSources().length); } /// <summary> /// Load the font data only when required instead of storing it in the memory /// for the entire lifetime of the "FontSettings" object. /// </summary> private static class SearchCacheStream extends StreamFontSource { public SearchCacheStream(String cacheKey) { super(0, cacheKey); } public FileInputStream openFontDataStream() throws Exception { return new FileInputStream(getFontsDir() + "Arvo-Regular.ttf"); } }
public java.lang.String getCacheKey()
This key is used to identify cache item when saving/loading font search cache with
If key is not specified then
public java.lang.String getFilePath()
Example:
Shows how to use a font file in the local file system as a font source.FileFontSource fileFontSource = new FileFontSource(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", 0); Document doc = new Document(); doc.setFontSettings(new FontSettings()); doc.getFontSettings().setFontsSources(new FontSourceBase[]{fileFontSource}); Assert.assertEquals(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", fileFontSource.getFilePath()); Assert.assertEquals(FontSourceType.FONT_FILE, fileFontSource.getType()); Assert.assertEquals(0, fileFontSource.getPriority());
public int getPriority()
This value is used when there are fonts with the same family name and style in different font sources. In this case Aspose.Words selects the font from the source with the higher priority value.
The default value is 0.
Example:
Shows how to use a font file in the local file system as a font source.FileFontSource fileFontSource = new FileFontSource(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", 0); Document doc = new Document(); doc.setFontSettings(new FontSettings()); doc.getFontSettings().setFontsSources(new FontSourceBase[]{fileFontSource}); Assert.assertEquals(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", fileFontSource.getFilePath()); Assert.assertEquals(FontSourceType.FONT_FILE, fileFontSource.getType()); Assert.assertEquals(0, fileFontSource.getPriority());
public int getType()
Example:
Shows how to use a font file in the local file system as a font source.FileFontSource fileFontSource = new FileFontSource(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", 0); Document doc = new Document(); doc.setFontSettings(new FontSettings()); doc.getFontSettings().setFontsSources(new FontSourceBase[]{fileFontSource}); Assert.assertEquals(getMyDir() + "Alte DIN 1451 Mittelschrift.ttf", fileFontSource.getFilePath()); Assert.assertEquals(FontSourceType.FONT_FILE, fileFontSource.getType()); Assert.assertEquals(0, fileFontSource.getPriority());
public IWarningCallback getWarningCallback() / public void setWarningCallback(IWarningCallback value)
Example:
Shows how to call warning callback when the font sources working with.@Test public void fontSourceWarning() { FontSettings settings = new FontSettings(); settings.setFontsFolder("bad folder?", false); FontSourceBase source = settings.getFontsSources()[0]; FontSourceWarningCollector callback = new FontSourceWarningCollector(); source.setWarningCallback(callback); // Get the list of fonts to call warning callback. ArrayList<PhysicalFontInfo> fontInfos = source.getAvailableFonts(); Assert.assertEquals("Error loading font from the folder \"bad folder?\": ", callback.FontSubstitutionWarnings.get(0).getDescription()); } private static class FontSourceWarningCollector implements IWarningCallback { /// <summary> /// Called every time a warning occurs during processing of font source. /// </summary> public void warning(WarningInfo info) { FontSubstitutionWarnings.warning(info); } public WarningInfoCollection FontSubstitutionWarnings = new WarningInfoCollection(); }
public java.util.ArrayList<PhysicalFontInfo> getAvailableFonts()
Example:
Shows how to list available fonts.// Configure Aspose.Words to source fonts from a custom folder, and then print every available font. FontSourceBase[] folderFontSource = {new FolderFontSource(getFontsDir(), true)}; for (PhysicalFontInfo fontInfo : folderFontSource[0].getAvailableFonts()) { System.out.println(MessageFormat.format("FontFamilyName : {0}", fontInfo.getFontFamilyName())); System.out.println(MessageFormat.format("FullFontName : {0}", fontInfo.getFullFontName())); System.out.println(MessageFormat.format("Version : {0}", fontInfo.getVersion())); System.out.println(MessageFormat.format("FilePath : {0}\n", fontInfo.getFilePath())); }