FontSubstitutionWarningInfo
Inheritance: java.lang.Object, com.aspose.words.WarningInfo
public class FontSubstitutionWarningInfo extends WarningInfo
Contains information about a font substitution warning that Aspose.Words issued during document loading or saving.
Examples:
Shows how to get additional information about font substitution.
Document doc = new Document(getMyDir() + "Rendering.docx");
WarningInfoCollection callback = new WarningInfoCollection();
doc.setWarningCallback(callback);
FontSettings fontSettings = new FontSettings();
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
fontSettings.setFontsFolder(getFontsDir(), false);
fontSettings.getSubstitutionSettings().getTableSubstitution().addSubstitutes("Arial", "Arvo", "Slab");
doc.setFontSettings(fontSettings);
doc.save(getArtifactsDir() + "FontSettings.SubstitutionWarnings.pdf");
FontSubstitutionWarningInfo warningInfo = (FontSubstitutionWarningInfo)callback.get(0);
Assert.assertEquals(WarningSource.LAYOUT, warningInfo.getSource());
Assert.assertEquals(WarningType.FONT_SUBSTITUTION, warningInfo.getWarningType());
Assert.assertEquals(FontSubstitutionReason.TABLE_SUBSTITUTION_RULE, warningInfo.getReason());
Assert.assertEquals("Font \'Arial\' has not been found. Using \'Arvo\' font instead. Reason: table substitution.", warningInfo.getDescription());
Assert.assertTrue(warningInfo.getRequestedBold());
Assert.assertFalse(warningInfo.getRequestedItalic());
Assert.assertEquals("Arial", warningInfo.getRequestedFamilyName());
Methods
Method | Description |
---|---|
getDescription() | Returns the description of the warning. |
getReason() | Font substitution reason. |
getRequestedBold() | Indicates whether bold style was requested. |
getRequestedFamilyName() | Requested font family name. |
getRequestedItalic() | Indicates whether italic style was requested. |
getResolvedFont() | Resolved font. |
getSource() | Returns the source of the warning. |
getWarningType() | Returns the type of the warning. |
getDescription()
public String getDescription()
Returns the description of the warning.
Examples:
Shows how to set the property for finding the closest match for a missing font from the available font sources.
// Open a document that contains text formatted with a font that does not exist in any of our font sources.
Document doc = new Document(getMyDir() + "Missing font.docx");
// Assign a callback for handling font substitution warnings.
WarningInfoCollection warningCollector = new WarningInfoCollection();
doc.setWarningCallback(warningCollector);
// Set a default font name and enable font substitution.
FontSettings fontSettings = new FontSettings();
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
fontSettings.getSubstitutionSettings().getFontInfoSubstitution().setEnabled(true);
// Original font metrics should be used after font substitution.
doc.getLayoutOptions().setKeepOriginalFontMetrics(true);
// We will get a font substitution warning if we save a document with a missing font.
doc.setFontSettings(fontSettings);
doc.save(getArtifactsDir() + "FontSettings.EnableFontSubstitution.pdf");
for (WarningInfo info : warningCollector)
{
if (info.getWarningType() == WarningType.FONT_SUBSTITUTION)
System.out.println(info.getDescription());
}
Shows how to get additional information about font substitution.
Document doc = new Document(getMyDir() + "Rendering.docx");
WarningInfoCollection callback = new WarningInfoCollection();
doc.setWarningCallback(callback);
FontSettings fontSettings = new FontSettings();
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
fontSettings.setFontsFolder(getFontsDir(), false);
fontSettings.getSubstitutionSettings().getTableSubstitution().addSubstitutes("Arial", "Arvo", "Slab");
doc.setFontSettings(fontSettings);
doc.save(getArtifactsDir() + "FontSettings.SubstitutionWarnings.pdf");
FontSubstitutionWarningInfo warningInfo = (FontSubstitutionWarningInfo)callback.get(0);
Assert.assertEquals(WarningSource.LAYOUT, warningInfo.getSource());
Assert.assertEquals(WarningType.FONT_SUBSTITUTION, warningInfo.getWarningType());
Assert.assertEquals(FontSubstitutionReason.TABLE_SUBSTITUTION_RULE, warningInfo.getReason());
Assert.assertEquals("Font \'Arial\' has not been found. Using \'Arvo\' font instead. Reason: table substitution.", warningInfo.getDescription());
Assert.assertTrue(warningInfo.getRequestedBold());
Assert.assertFalse(warningInfo.getRequestedItalic());
Assert.assertEquals("Arial", warningInfo.getRequestedFamilyName());
Returns: java.lang.String - The description of the warning.
getReason()
public int getReason()
Font substitution reason.
Examples:
Shows how to get additional information about font substitution.
Document doc = new Document(getMyDir() + "Rendering.docx");
WarningInfoCollection callback = new WarningInfoCollection();
doc.setWarningCallback(callback);
FontSettings fontSettings = new FontSettings();
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
fontSettings.setFontsFolder(getFontsDir(), false);
fontSettings.getSubstitutionSettings().getTableSubstitution().addSubstitutes("Arial", "Arvo", "Slab");
doc.setFontSettings(fontSettings);
doc.save(getArtifactsDir() + "FontSettings.SubstitutionWarnings.pdf");
FontSubstitutionWarningInfo warningInfo = (FontSubstitutionWarningInfo)callback.get(0);
Assert.assertEquals(WarningSource.LAYOUT, warningInfo.getSource());
Assert.assertEquals(WarningType.FONT_SUBSTITUTION, warningInfo.getWarningType());
Assert.assertEquals(FontSubstitutionReason.TABLE_SUBSTITUTION_RULE, warningInfo.getReason());
Assert.assertEquals("Font \'Arial\' has not been found. Using \'Arvo\' font instead. Reason: table substitution.", warningInfo.getDescription());
Assert.assertTrue(warningInfo.getRequestedBold());
Assert.assertFalse(warningInfo.getRequestedItalic());
Assert.assertEquals("Arial", warningInfo.getRequestedFamilyName());
Returns: int - The corresponding int value. The returned value is one of FontSubstitutionReason constants.
getRequestedBold()
public boolean getRequestedBold()
Indicates whether bold style was requested.
Examples:
Shows how to get additional information about font substitution.
Document doc = new Document(getMyDir() + "Rendering.docx");
WarningInfoCollection callback = new WarningInfoCollection();
doc.setWarningCallback(callback);
FontSettings fontSettings = new FontSettings();
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
fontSettings.setFontsFolder(getFontsDir(), false);
fontSettings.getSubstitutionSettings().getTableSubstitution().addSubstitutes("Arial", "Arvo", "Slab");
doc.setFontSettings(fontSettings);
doc.save(getArtifactsDir() + "FontSettings.SubstitutionWarnings.pdf");
FontSubstitutionWarningInfo warningInfo = (FontSubstitutionWarningInfo)callback.get(0);
Assert.assertEquals(WarningSource.LAYOUT, warningInfo.getSource());
Assert.assertEquals(WarningType.FONT_SUBSTITUTION, warningInfo.getWarningType());
Assert.assertEquals(FontSubstitutionReason.TABLE_SUBSTITUTION_RULE, warningInfo.getReason());
Assert.assertEquals("Font \'Arial\' has not been found. Using \'Arvo\' font instead. Reason: table substitution.", warningInfo.getDescription());
Assert.assertTrue(warningInfo.getRequestedBold());
Assert.assertFalse(warningInfo.getRequestedItalic());
Assert.assertEquals("Arial", warningInfo.getRequestedFamilyName());
Returns: boolean - The corresponding boolean value.
getRequestedFamilyName()
public String getRequestedFamilyName()
Requested font family name.
Examples:
Shows how to get additional information about font substitution.
Document doc = new Document(getMyDir() + "Rendering.docx");
WarningInfoCollection callback = new WarningInfoCollection();
doc.setWarningCallback(callback);
FontSettings fontSettings = new FontSettings();
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
fontSettings.setFontsFolder(getFontsDir(), false);
fontSettings.getSubstitutionSettings().getTableSubstitution().addSubstitutes("Arial", "Arvo", "Slab");
doc.setFontSettings(fontSettings);
doc.save(getArtifactsDir() + "FontSettings.SubstitutionWarnings.pdf");
FontSubstitutionWarningInfo warningInfo = (FontSubstitutionWarningInfo)callback.get(0);
Assert.assertEquals(WarningSource.LAYOUT, warningInfo.getSource());
Assert.assertEquals(WarningType.FONT_SUBSTITUTION, warningInfo.getWarningType());
Assert.assertEquals(FontSubstitutionReason.TABLE_SUBSTITUTION_RULE, warningInfo.getReason());
Assert.assertEquals("Font \'Arial\' has not been found. Using \'Arvo\' font instead. Reason: table substitution.", warningInfo.getDescription());
Assert.assertTrue(warningInfo.getRequestedBold());
Assert.assertFalse(warningInfo.getRequestedItalic());
Assert.assertEquals("Arial", warningInfo.getRequestedFamilyName());
Returns: java.lang.String - The corresponding java.lang.String value.
getRequestedItalic()
public boolean getRequestedItalic()
Indicates whether italic style was requested.
Examples:
Shows how to get additional information about font substitution.
Document doc = new Document(getMyDir() + "Rendering.docx");
WarningInfoCollection callback = new WarningInfoCollection();
doc.setWarningCallback(callback);
FontSettings fontSettings = new FontSettings();
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
fontSettings.setFontsFolder(getFontsDir(), false);
fontSettings.getSubstitutionSettings().getTableSubstitution().addSubstitutes("Arial", "Arvo", "Slab");
doc.setFontSettings(fontSettings);
doc.save(getArtifactsDir() + "FontSettings.SubstitutionWarnings.pdf");
FontSubstitutionWarningInfo warningInfo = (FontSubstitutionWarningInfo)callback.get(0);
Assert.assertEquals(WarningSource.LAYOUT, warningInfo.getSource());
Assert.assertEquals(WarningType.FONT_SUBSTITUTION, warningInfo.getWarningType());
Assert.assertEquals(FontSubstitutionReason.TABLE_SUBSTITUTION_RULE, warningInfo.getReason());
Assert.assertEquals("Font \'Arial\' has not been found. Using \'Arvo\' font instead. Reason: table substitution.", warningInfo.getDescription());
Assert.assertTrue(warningInfo.getRequestedBold());
Assert.assertFalse(warningInfo.getRequestedItalic());
Assert.assertEquals("Arial", warningInfo.getRequestedFamilyName());
Returns: boolean - The corresponding boolean value.
getResolvedFont()
public PhysicalFontInfo getResolvedFont()
Resolved font.
Returns: PhysicalFontInfo - The corresponding PhysicalFontInfo value.
getSource()
public int getSource()
Returns the source of the warning.
Examples:
Shows how to work with the warning source.
Document doc = new Document(getMyDir() + "Emphases markdown warning.docx");
WarningInfoCollection warnings = new WarningInfoCollection();
doc.setWarningCallback(warnings);
doc.save(getArtifactsDir() + "DocumentBuilder.EmphasesWarningSourceMarkdown.md");
for (WarningInfo warningInfo : warnings) {
if (warningInfo.getSource() == WarningSource.MARKDOWN)
Assert.assertEquals("The (*, 0:11) cannot be properly written into Markdown.", warningInfo.getDescription());
}
Shows how to get additional information about font substitution.
Document doc = new Document(getMyDir() + "Rendering.docx");
WarningInfoCollection callback = new WarningInfoCollection();
doc.setWarningCallback(callback);
FontSettings fontSettings = new FontSettings();
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
fontSettings.setFontsFolder(getFontsDir(), false);
fontSettings.getSubstitutionSettings().getTableSubstitution().addSubstitutes("Arial", "Arvo", "Slab");
doc.setFontSettings(fontSettings);
doc.save(getArtifactsDir() + "FontSettings.SubstitutionWarnings.pdf");
FontSubstitutionWarningInfo warningInfo = (FontSubstitutionWarningInfo)callback.get(0);
Assert.assertEquals(WarningSource.LAYOUT, warningInfo.getSource());
Assert.assertEquals(WarningType.FONT_SUBSTITUTION, warningInfo.getWarningType());
Assert.assertEquals(FontSubstitutionReason.TABLE_SUBSTITUTION_RULE, warningInfo.getReason());
Assert.assertEquals("Font \'Arial\' has not been found. Using \'Arvo\' font instead. Reason: table substitution.", warningInfo.getDescription());
Assert.assertTrue(warningInfo.getRequestedBold());
Assert.assertFalse(warningInfo.getRequestedItalic());
Assert.assertEquals("Arial", warningInfo.getRequestedFamilyName());
Returns: int - The source of the warning. The returned value is one of WarningSource constants.
getWarningType()
public int getWarningType()
Returns the type of the warning.
Examples:
Shows how to set the property for finding the closest match for a missing font from the available font sources.
// Open a document that contains text formatted with a font that does not exist in any of our font sources.
Document doc = new Document(getMyDir() + "Missing font.docx");
// Assign a callback for handling font substitution warnings.
WarningInfoCollection warningCollector = new WarningInfoCollection();
doc.setWarningCallback(warningCollector);
// Set a default font name and enable font substitution.
FontSettings fontSettings = new FontSettings();
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
fontSettings.getSubstitutionSettings().getFontInfoSubstitution().setEnabled(true);
// Original font metrics should be used after font substitution.
doc.getLayoutOptions().setKeepOriginalFontMetrics(true);
// We will get a font substitution warning if we save a document with a missing font.
doc.setFontSettings(fontSettings);
doc.save(getArtifactsDir() + "FontSettings.EnableFontSubstitution.pdf");
for (WarningInfo info : warningCollector)
{
if (info.getWarningType() == WarningType.FONT_SUBSTITUTION)
System.out.println(info.getDescription());
}
Shows how to get additional information about font substitution.
Document doc = new Document(getMyDir() + "Rendering.docx");
WarningInfoCollection callback = new WarningInfoCollection();
doc.setWarningCallback(callback);
FontSettings fontSettings = new FontSettings();
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
fontSettings.setFontsFolder(getFontsDir(), false);
fontSettings.getSubstitutionSettings().getTableSubstitution().addSubstitutes("Arial", "Arvo", "Slab");
doc.setFontSettings(fontSettings);
doc.save(getArtifactsDir() + "FontSettings.SubstitutionWarnings.pdf");
FontSubstitutionWarningInfo warningInfo = (FontSubstitutionWarningInfo)callback.get(0);
Assert.assertEquals(WarningSource.LAYOUT, warningInfo.getSource());
Assert.assertEquals(WarningType.FONT_SUBSTITUTION, warningInfo.getWarningType());
Assert.assertEquals(FontSubstitutionReason.TABLE_SUBSTITUTION_RULE, warningInfo.getReason());
Assert.assertEquals("Font \'Arial\' has not been found. Using \'Arvo\' font instead. Reason: table substitution.", warningInfo.getDescription());
Assert.assertTrue(warningInfo.getRequestedBold());
Assert.assertFalse(warningInfo.getRequestedItalic());
Assert.assertEquals("Arial", warningInfo.getRequestedFamilyName());
Returns: int - The type of the warning. The returned value is a bitwise combination of WarningType constants.