public class DefaultFontSubstitutionRule extends FontSubstitutionRule
To learn more, visit the Working with Fonts documentation article.
Remarks:
This rule defines single default font name to be used for substitution if the original font is not available.
Examples:
Shows how to set the default font substitution rule.
Document doc = new Document();
FontSettings fontSettings = new FontSettings();
doc.setFontSettings(fontSettings);
// Get the default substitution rule within FontSettings.
// This rule will substitute all missing fonts with "Times New Roman".
DefaultFontSubstitutionRule defaultFontSubstitutionRule = fontSettings.getSubstitutionSettings().getDefaultFontSubstitution();
Assert.assertTrue(defaultFontSubstitutionRule.getEnabled());
Assert.assertEquals("Times New Roman", defaultFontSubstitutionRule.getDefaultFontName());
// Set the default font substitute to "Courier New".
defaultFontSubstitutionRule.setDefaultFontName("Courier New");
// Using a document builder, add some text in a font that we do not have to see the substitution take place,
// and then render the result in a PDF.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getFont().setName("Missing Font");
builder.writeln("Line written in a missing font, which will be substituted with Courier New.");
doc.save(getArtifactsDir() + "FontSettings.DefaultFontSubstitutionRule.pdf");
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getDefaultFontName()
Gets the default font name.
|
void |
setDefaultFontName(java.lang.String value)
Sets the default font name.
|
getEnabled, getSyncRoot, setEnabledpublic java.lang.String getDefaultFontName()
Remarks:
The default value is 'Times New Roman'.
Examples:
Shows how to set the default font substitution rule.
Document doc = new Document();
FontSettings fontSettings = new FontSettings();
doc.setFontSettings(fontSettings);
// Get the default substitution rule within FontSettings.
// This rule will substitute all missing fonts with "Times New Roman".
DefaultFontSubstitutionRule defaultFontSubstitutionRule = fontSettings.getSubstitutionSettings().getDefaultFontSubstitution();
Assert.assertTrue(defaultFontSubstitutionRule.getEnabled());
Assert.assertEquals("Times New Roman", defaultFontSubstitutionRule.getDefaultFontName());
// Set the default font substitute to "Courier New".
defaultFontSubstitutionRule.setDefaultFontName("Courier New");
// Using a document builder, add some text in a font that we do not have to see the substitution take place,
// and then render the result in a PDF.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getFont().setName("Missing Font");
builder.writeln("Line written in a missing font, which will be substituted with Courier New.");
doc.save(getArtifactsDir() + "FontSettings.DefaultFontSubstitutionRule.pdf");
Shows how to specify a default font.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getFont().setName("Arial");
builder.writeln("Hello world!");
builder.getFont().setName("Arvo");
builder.writeln("The quick brown fox jumps over the lazy dog.");
FontSourceBase[] fontSources = FontSettings.getDefaultInstance().getFontsSources();
// The font sources that the document uses contain the font "Arial", but not "Arvo".
Assert.assertEquals(1, fontSources.length);
Assert.assertTrue(IterableUtils.matchesAny(fontSources[0].getAvailableFonts(), f -> f.getFullFontName().contains("Arial")));
Assert.assertFalse(IterableUtils.matchesAny(fontSources[0].getAvailableFonts(), f -> f.getFullFontName().contains("Arvo")));
// Set the "DefaultFontName" property to "Courier New" to,
// while rendering the document, apply that font in all cases when another font is not available.
FontSettings.getDefaultInstance().getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Courier New");
Assert.assertTrue(IterableUtils.matchesAny(fontSources[0].getAvailableFonts(), f -> f.getFullFontName().contains("Courier New")));
// Aspose.Words will now use the default font in place of any missing fonts during any rendering calls.
doc.save(getArtifactsDir() + "FontSettings.DefaultFontName.pdf");
public void setDefaultFontName(java.lang.String value)
Remarks:
The default value is 'Times New Roman'.
Examples:
Shows how to set the default font substitution rule.
Document doc = new Document();
FontSettings fontSettings = new FontSettings();
doc.setFontSettings(fontSettings);
// Get the default substitution rule within FontSettings.
// This rule will substitute all missing fonts with "Times New Roman".
DefaultFontSubstitutionRule defaultFontSubstitutionRule = fontSettings.getSubstitutionSettings().getDefaultFontSubstitution();
Assert.assertTrue(defaultFontSubstitutionRule.getEnabled());
Assert.assertEquals("Times New Roman", defaultFontSubstitutionRule.getDefaultFontName());
// Set the default font substitute to "Courier New".
defaultFontSubstitutionRule.setDefaultFontName("Courier New");
// Using a document builder, add some text in a font that we do not have to see the substitution take place,
// and then render the result in a PDF.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getFont().setName("Missing Font");
builder.writeln("Line written in a missing font, which will be substituted with Courier New.");
doc.save(getArtifactsDir() + "FontSettings.DefaultFontSubstitutionRule.pdf");
Shows how to specify a default font.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getFont().setName("Arial");
builder.writeln("Hello world!");
builder.getFont().setName("Arvo");
builder.writeln("The quick brown fox jumps over the lazy dog.");
FontSourceBase[] fontSources = FontSettings.getDefaultInstance().getFontsSources();
// The font sources that the document uses contain the font "Arial", but not "Arvo".
Assert.assertEquals(1, fontSources.length);
Assert.assertTrue(IterableUtils.matchesAny(fontSources[0].getAvailableFonts(), f -> f.getFullFontName().contains("Arial")));
Assert.assertFalse(IterableUtils.matchesAny(fontSources[0].getAvailableFonts(), f -> f.getFullFontName().contains("Arvo")));
// Set the "DefaultFontName" property to "Courier New" to,
// while rendering the document, apply that font in all cases when another font is not available.
FontSettings.getDefaultInstance().getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Courier New");
Assert.assertTrue(IterableUtils.matchesAny(fontSources[0].getAvailableFonts(), f -> f.getFullFontName().contains("Courier New")));
// Aspose.Words will now use the default font in place of any missing fonts during any rendering calls.
doc.save(getArtifactsDir() + "FontSettings.DefaultFontName.pdf");
value - The default font name.