public void FontSubstitutionWarnings() { Document doc = new Document(MyDir + "Rendering.doc"); // Create a new class implementing IWarningCallback and assign it to the PdfSaveOptions class. ExRendering.HandleDocumentWarnings callback = new ExRendering.HandleDocumentWarnings(); doc.WarningCallback = callback; FontSettings fontSettings = new FontSettings(); fontSettings.DefaultFontName = "Arial"; fontSettings.SetFontSubstitutes("Arial", new string[] { "Arvo", "Slab" }); fontSettings.SetFontsFolder(MyDir + @"MyFonts\", false); doc.FontSettings = fontSettings; doc.Save(MyDir + @"\Artifacts\Rendering.MissingFontNotification.pdf"); Assert.True(callback.mFontWarnings[0].Description.Equals("Font substitutes: 'Arial' replaced with 'Arvo'.")); Assert.True(callback.mFontWarnings[1].Description.Equals("Font 'Times New Roman' has not been found. Using 'Arvo' font instead. Reason: default font setting.")); }
public void FontSubstitutionWarningsClosestMatch() { Document doc = new Document(MyDir + "DisapearingBulletPoints.doc"); // Create a new class implementing IWarningCallback and assign it to the PdfSaveOptions class. ExRendering.HandleDocumentWarnings callback = new ExRendering.HandleDocumentWarnings(); doc.WarningCallback = callback; doc.Save(MyDir + @"\Artifacts\DisapearingBulletPoints.pdf"); Assert.True(callback.mFontWarnings[0].Description.Equals("Font 'SymbolPS' has not been found. Using 'Wingdings' font instead. Reason: closest match according to font info from the document.")); }
public void FontSubstitutionPerFirstAvailableFont() { // Store the font sources currently used so we can restore them later. FontSourceBase[] origFontSources = FontSettings.DefaultInstance.GetFontsSources(); //ExStart //ExFor:IWarningCallback //ExFor:DocumentBase.WarningCallback //ExFor:SaveOptions.WarningCallback //ExId:FontSubstitutionNotification //ExSummary:Demonstrates how to recieve notifications of font substitutions by using IWarningCallback. // Load the document to render. Document doc = new Document(MyDir + "Document.doc"); // Create a new class implementing IWarningCallback and assign it to the PdfSaveOptions class. ExRendering.HandleDocumentWarnings callback = new ExRendering.HandleDocumentWarnings(); doc.WarningCallback = callback; // We can choose the default font to use in the case of any missing fonts. FontSettings.DefaultInstance.DefaultFontName = "Arial"; // For testing we will set Aspose.Words to look for fonts only in a folder which doesn't exist. Since Aspose.Words won't // find any fonts in the specified directory, then during rendering the fonts in the document will be subsuited with the default // font specified under FontSettings.DefaultFontName. We can pick up on this subsuition using our callback. FontSettings.DefaultInstance.SetFontsFolder(string.Empty, false); // Pass the save options along with the save path to the save method. doc.Save(MyDir + @"\Artifacts\Rendering.MissingFontNotification.pdf"); //ExEnd Assert.Greater(callback.mFontWarnings.Count, 0); Assert.True(callback.mFontWarnings[0].WarningType == WarningType.FontSubstitution); Assert.True(callback.mFontWarnings[0].Description.Equals("Font 'Times New Roman' has not been found. Using 'Fanwood' font instead. Reason: first available font.")); // Restore default fonts. FontSettings.DefaultInstance.SetFontsSources(origFontSources); }