public class FontNameSubstitutionRule
Property Getters/Setters Summary | ||
---|---|---|
boolean | getEnabled() | |
void | setEnabled(booleanvalue) | |
Specifies whether the rule is enabled or not. |
public boolean getEnabled() / public void setEnabled(boolean value)
Example:
Shows operating system-dependent font config substitution.FontSettings fontSettings = new FontSettings(); FontConfigSubstitutionRule fontConfigSubstitution = fontSettings.getSubstitutionSettings().getFontConfigSubstitution(); // The FontConfigSubstitutionRule object works differently on Windows/non-Windows platforms. // On Windows, it is unavailable. if (SystemUtils.IS_OS_WINDOWS) { Assert.assertFalse(fontConfigSubstitution.getEnabled()); Assert.assertFalse(fontConfigSubstitution.isFontConfigAvailable()); } // On Linux/Mac, we will have access to it, and will be able to perform operations. if (SystemUtils.IS_OS_LINUX) { Assert.assertTrue(fontConfigSubstitution.getEnabled()); Assert.assertTrue(fontConfigSubstitution.isFontConfigAvailable()); fontConfigSubstitution.resetCache(); }
Example:
Shows how to access a document's system font source and set font substitutes.Document doc = new Document(); doc.setFontSettings(new FontSettings()); // By default, a blank document always contains a system font source. Assert.assertEquals(1, doc.getFontSettings().getFontsSources().length); SystemFontSource systemFontSource = (SystemFontSource) doc.getFontSettings().getFontsSources()[0]; Assert.assertEquals(FontSourceType.SYSTEM_FONTS, systemFontSource.getType()); Assert.assertEquals(0, systemFontSource.getPriority()); if (SystemUtils.IS_OS_WINDOWS) { final String FONTS_PATH = "C:\\WINDOWS\\Fonts"; Assert.assertEquals(FONTS_PATH.toLowerCase(), SystemFontSource.getSystemFontFolders()[0].toLowerCase()); } for (String systemFontFolder : SystemFontSource.getSystemFontFolders()) { System.out.println(systemFontFolder); } // Set a font that exists in the Windows Fonts directory as a substitute for one that does not. doc.getFontSettings().getSubstitutionSettings().getFontInfoSubstitution().setEnabled(true); doc.getFontSettings().getSubstitutionSettings().getTableSubstitution().addSubstitutes("Kreon-Regular", "Calibri"); Assert.assertEquals(1, IterableUtils.size(doc.getFontSettings().getSubstitutionSettings().getTableSubstitution().getSubstitutes("Kreon-Regular"))); Assert.assertTrue(IterableUtils.toString(doc.getFontSettings().getSubstitutionSettings().getTableSubstitution().getSubstitutes("Kreon-Regular")).contains("Calibri")); // Alternatively, we could add a folder font source in which the corresponding folder contains the font. FolderFontSource folderFontSource = new FolderFontSource(getFontsDir(), false); doc.getFontSettings().setFontsSources(new FontSourceBase[]{systemFontSource, folderFontSource}); Assert.assertEquals(2, doc.getFontSettings().getFontsSources().length); // Resetting the font sources still leaves us with the system font source as well as our substitutes. doc.getFontSettings().resetFontSources(); Assert.assertEquals(1, doc.getFontSettings().getFontsSources().length); Assert.assertEquals(FontSourceType.SYSTEM_FONTS, doc.getFontSettings().getFontsSources()[0].getType()); Assert.assertEquals(1, IterableUtils.size(doc.getFontSettings().getSubstitutionSettings().getTableSubstitution().getSubstitutes("Kreon-Regular")));