public void UpdatePageLayout() { //ExStart //ExFor:StyleCollection.Item(String) //ExFor:SectionCollection.Item(Int32) //ExFor:Document.UpdatePageLayout //ExSummary:Shows when to request page layout of the document to be recalculated. Aspose.Words.Document doc = new Aspose.Words.Document(MyDir + "Rendering.doc"); // Saving a document to PDF or to image or printing for the first time will automatically // layout document pages and this information will be cached inside the document. doc.Save(MyDir + "Rendering.UpdatePageLayout1 Out.pdf"); // Modify the document in any way. doc.Styles["Normal"].Font.Size = 6; doc.Sections[0].PageSetup.Orientation = Aspose.Words.Orientation.Landscape; // In the current version of Aspose.Words, modifying the document does not automatically rebuild // the cached page layout. If you want to save to PDF or render a modified document again, // you need to manually request page layout to be updated. doc.UpdatePageLayout(); doc.Save(MyDir + "Rendering.UpdatePageLayout2 Out.pdf"); //ExEnd }
public void RecieveFontSubstitutionUpdatePageLayout() { // Store the font sources currently used so we can restore them later. FontSourceBase[] origFontSources = FontSettings.GetFontsSources(); // Load the document to render. Aspose.Words.Document doc = new Aspose.Words.Document(MyDir + "Document.doc"); // We can choose the default font to use in the case of any missing fonts. FontSettings.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.SetFontsFolder(string.Empty, false); //ExStart //ExId:FontSubstitutionUpdatePageLayout //ExSummary:Demonstrates how IWarningCallback will still recieve warning notifcations even if UpdatePageLayout is called before document save. // When you call UpdatePageLayout the document is rendered in memory. Any warnings that occured during rendering // are stored until the document save and then sent to the appropriate WarningCallback. doc.UpdatePageLayout(); // Create a new class implementing IWarningCallback and assign it to the PdfSaveOptions class. HandleDocumentWarnings callback = new HandleDocumentWarnings(); PdfSaveOptions saveOptions = new PdfSaveOptions(); saveOptions.WarningCallback = callback; // Even though the document was rendered previously, any save warnings are notified to the user during document save. doc.Save(MyDir + "Rendering.FontsNotificationUpdatePageLayout Out.pdf", saveOptions); //ExEnd Assert.Greater(callback.mFontWarnings.Count, 0); Assert.True(callback.mFontWarnings[0].WarningType == WarningType.FontSubstitution); Assert.True(callback.mFontWarnings[0].Description.Contains("has not been found")); // Restore default fonts. FontSettings.SetFontsSources(origFontSources); }
public void UpdatePageLayout() { //ExStart //ExFor:StyleCollection.Item(String) //ExFor:SectionCollection.Item(Int32) //ExFor:Document.UpdatePageLayout //ExSummary:Shows when to request page layout of the document to be recalculated. Aspose.Words.Document doc = new Aspose.Words.Document(ExDir + "Rendering.doc"); // Saving a document to PDF or to image or printing for the first time will automatically // layout document pages and this information will be cached inside the document. doc.Save(ExDir + "Rendering.UpdatePageLayout1 Out.pdf"); // Modify the document in any way. doc.Styles["Normal"].Font.Size = 6; doc.Sections[0].PageSetup.Orientation = Aspose.Words.Orientation.Landscape; // In the current version of Aspose.Words, modifying the document does not automatically rebuild // the cached page layout. If you want to save to PDF or render a modified document again, // you need to manually request page layout to be updated. doc.UpdatePageLayout(); doc.Save(ExDir + "Rendering.UpdatePageLayout2 Out.pdf"); //ExEnd }
public void RecieveFontSubstitutionUpdatePageLayout() { // Store the font sources currently used so we can restore them later. FontSourceBase[] origFontSources = FontSettings.GetFontsSources(); // Load the document to render. Aspose.Words.Document doc = new Aspose.Words.Document(ExDir + "Document.doc"); // We can choose the default font to use in the case of any missing fonts. FontSettings.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.SetFontsFolder(string.Empty, false); //ExStart //ExId:FontSubstitutionUpdatePageLayout //ExSummary:Demonstrates how IWarningCallback will still recieve warning notifcations even if UpdatePageLayout is called before document save. // When you call UpdatePageLayout the document is rendered in memory. Any warnings that occured during rendering // are stored until the document save and then sent to the appropriate WarningCallback. doc.UpdatePageLayout(); // Create a new class implementing IWarningCallback and assign it to the PdfSaveOptions class. HandleDocumentWarnings callback = new HandleDocumentWarnings(); PdfSaveOptions saveOptions = new PdfSaveOptions(); saveOptions.WarningCallback = callback; // Even though the document was rendered previously, any save warnings are notified to the user during document save. doc.Save(ExDir + "Rendering.FontsNotificationUpdatePageLayout Out.pdf", saveOptions); //ExEnd Assert.Greater(callback.mFontWarnings.Count, 0); Assert.True(callback.mFontWarnings[0].WarningType == WarningType.FontSubstitution); Assert.True(callback.mFontWarnings[0].Description.Contains("has not been found")); // Restore default fonts. FontSettings.SetFontsSources(origFontSources); }