Class DocumentSavingArgs

Class DocumentSavingArgs

Namespace: Aspose.Words.Saving
Assembly: Aspose.Words.dll (25.12.0)

An argument passed into Aspose.Words.Saving.IDocumentSavingCallback.Notify(Aspose.Words.Saving.DocumentSavingArgs).

To learn more, visit the Save a Document documentation article.

public sealed class DocumentSavingArgs

Inheritance

object DocumentSavingArgs

Inherited Members

object.GetType() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Examples

Shows how to manage a document while saving to html.

public void ProgressCallback(SaveFormat saveFormat, string ext)
                                                               {
                                                                   Document doc = new Document(MyDir + "Big document.docx");

                                                                   // Following formats are supported: Html, Mhtml, Epub.
                                                                   HtmlSaveOptions saveOptions = new HtmlSaveOptions(saveFormat)
                                                                   {
                                                                       ProgressCallback = new SavingProgressCallback()
                                                                   };

                                                                   var exception = Assert.Throws<OperationCanceledException>(() =>
                                                                       doc.Save(ArtifactsDir + $"HtmlSaveOptions.ProgressCallback.{ext}", saveOptions));
                                                                   Assert.That(exception?.Message.Contains("EstimatedProgress"), Is.True);
                                                               }

                                                               /// <summary>
                                                               /// Saving progress callback. Cancel a document saving after the "MaxDuration" seconds.
                                                               /// </summary>
                                                               public class SavingProgressCallback : IDocumentSavingCallback
                                                               {
                                                                   /// <summary>
                                                                   /// Ctr.
                                                                   /// </summary>
                                                                   public SavingProgressCallback()
                                                                   {
                                                                       mSavingStartedAt = DateTime.Now;
                                                                   }

                                                                   /// <summary>
                                                                   /// Callback method which called during document saving.
                                                                   /// </summary>
                                                                   /// <param name="args">Saving arguments.</param>
                                                                   public void Notify(DocumentSavingArgs args)
                                                                   {
                                                                       DateTime canceledAt = DateTime.Now;
                                                                       double ellapsedSeconds = (canceledAt - mSavingStartedAt).TotalSeconds;
                                                                       if (ellapsedSeconds > MaxDuration)
                                                                           throw new OperationCanceledException($"EstimatedProgress = {args.EstimatedProgress}; CanceledAt = {canceledAt}");
                                                                   }

                                                                   /// <summary>
                                                                   /// Date and time when document saving is started.
                                                                   /// </summary>
                                                                   private readonly DateTime mSavingStartedAt;

                                                                   /// <summary>
                                                                   /// Maximum allowed duration in sec.
                                                                   /// </summary>
                                                                   private const double MaxDuration = 0.1d;
                                                               }

Properties

EstimatedProgress

Overall estimated percentage progress.

public double EstimatedProgress { get; }

Property Value

double

Examples

Shows how to manage a document while saving to html.

public void ProgressCallback(SaveFormat saveFormat, string ext)
                                                               {
                                                                   Document doc = new Document(MyDir + "Big document.docx");

                                                                   // Following formats are supported: Html, Mhtml, Epub.
                                                                   HtmlSaveOptions saveOptions = new HtmlSaveOptions(saveFormat)
                                                                   {
                                                                       ProgressCallback = new SavingProgressCallback()
                                                                   };

                                                                   var exception = Assert.Throws<OperationCanceledException>(() =>
                                                                       doc.Save(ArtifactsDir + $"HtmlSaveOptions.ProgressCallback.{ext}", saveOptions));
                                                                   Assert.That(exception?.Message.Contains("EstimatedProgress"), Is.True);
                                                               }

                                                               /// <summary>
                                                               /// Saving progress callback. Cancel a document saving after the "MaxDuration" seconds.
                                                               /// </summary>
                                                               public class SavingProgressCallback : IDocumentSavingCallback
                                                               {
                                                                   /// <summary>
                                                                   /// Ctr.
                                                                   /// </summary>
                                                                   public SavingProgressCallback()
                                                                   {
                                                                       mSavingStartedAt = DateTime.Now;
                                                                   }

                                                                   /// <summary>
                                                                   /// Callback method which called during document saving.
                                                                   /// </summary>
                                                                   /// <param name="args">Saving arguments.</param>
                                                                   public void Notify(DocumentSavingArgs args)
                                                                   {
                                                                       DateTime canceledAt = DateTime.Now;
                                                                       double ellapsedSeconds = (canceledAt - mSavingStartedAt).TotalSeconds;
                                                                       if (ellapsedSeconds > MaxDuration)
                                                                           throw new OperationCanceledException($"EstimatedProgress = {args.EstimatedProgress}; CanceledAt = {canceledAt}");
                                                                   }

                                                                   /// <summary>
                                                                   /// Date and time when document saving is started.
                                                                   /// </summary>
                                                                   private readonly DateTime mSavingStartedAt;

                                                                   /// <summary>
                                                                   /// Maximum allowed duration in sec.
                                                                   /// </summary>
                                                                   private const double MaxDuration = 0.1d;
                                                               }

Shows how to manage a document while saving to docx.

public void ProgressCallback(SaveFormat saveFormat, string ext)
                                                               {
                                                                   Document doc = new Document(MyDir + "Big document.docx");

                                                                   // Following formats are supported: Docx, FlatOpc, Docm, Dotm, Dotx.
                                                                   OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(saveFormat)
                                                                   {
                                                                       ProgressCallback = new SavingProgressCallback()
                                                                   };

                                                                   var exception = Assert.Throws<OperationCanceledException>(() =>
                                                                       doc.Save(ArtifactsDir + $"OoxmlSaveOptions.ProgressCallback.{ext}", saveOptions));
                                                                   Assert.That(exception?.Message.Contains("EstimatedProgress"), Is.True);
                                                               }

                                                               /// <summary>
                                                               /// Saving progress callback. Cancel a document saving after the "MaxDuration" seconds.
                                                               /// </summary>
                                                               public class SavingProgressCallback : IDocumentSavingCallback
                                                               {
                                                                   /// <summary>
                                                                   /// Ctr.
                                                                   /// </summary>
                                                                   public SavingProgressCallback()
                                                                   {
                                                                       mSavingStartedAt = DateTime.Now;
                                                                   }

                                                                   /// <summary>
                                                                   /// Callback method which called during document saving.
                                                                   /// </summary>
                                                                   /// <param name="args">Saving arguments.</param>
                                                                   public void Notify(DocumentSavingArgs args)
                                                                   {
                                                                       DateTime canceledAt = DateTime.Now;
                                                                       double ellapsedSeconds = (canceledAt - mSavingStartedAt).TotalSeconds;
                                                                       if (ellapsedSeconds > MaxDuration)
                                                                           throw new OperationCanceledException($"EstimatedProgress = {args.EstimatedProgress}; CanceledAt = {canceledAt}");
                                                                   }

                                                                   /// <summary>
                                                                   /// Date and time when document saving is started.
                                                                   /// </summary>
                                                                   private readonly DateTime mSavingStartedAt;

                                                                   /// <summary>
                                                                   /// Maximum allowed duration in sec.
                                                                   /// </summary>
                                                                   private const double MaxDuration = 0.01d;
                                                               }

Shows how to manage a document while saving to xamlflow.

public void ProgressCallback(SaveFormat saveFormat, string ext)
                                                                   {
                                                                       Document doc = new Document(MyDir + "Big document.docx");

                                                                       // Following formats are supported: XamlFlow, XamlFlowPack.
                                                                       XamlFlowSaveOptions saveOptions = new XamlFlowSaveOptions(saveFormat)
                                                                       {
                                                                           ProgressCallback = new SavingProgressCallback()
                                                                       };

                                                                       var exception = Assert.Throws<OperationCanceledException>(() =>
                                                                           doc.Save(ArtifactsDir + $"XamlFlowSaveOptions.ProgressCallback.{ext}", saveOptions));
                                                                       Assert.That(exception?.Message.Contains("EstimatedProgress"), Is.True);
                                                                   }

                                                                   /// <summary>
                                                                   /// Saving progress callback. Cancel a document saving after the "MaxDuration" seconds.
                                                                   /// </summary>
                                                                   public class SavingProgressCallback : IDocumentSavingCallback
                                                                   {
                                                                       /// <summary>
                                                                       /// Ctr.
                                                                       /// </summary>
                                                                       public SavingProgressCallback()
                                                                       {
                                                                           mSavingStartedAt = DateTime.Now;
                                                                       }

                                                                       /// <summary>
                                                                       /// Callback method which called during document saving.
                                                                       /// </summary>
                                                                       /// <param name="args">Saving arguments.</param>
                                                                       public void Notify(DocumentSavingArgs args)
                                                                       {
                                                                           DateTime canceledAt = DateTime.Now;
                                                                           double ellapsedSeconds = (canceledAt - mSavingStartedAt).TotalSeconds;
                                                                           if (ellapsedSeconds > MaxDuration)
                                                                               throw new OperationCanceledException($"EstimatedProgress = {args.EstimatedProgress}; CanceledAt = {canceledAt}");
                                                                       }

                                                                       /// <summary>
                                                                       /// Date and time when document saving is started.
                                                                       /// </summary>
                                                                       private readonly DateTime mSavingStartedAt;

                                                                       /// <summary>
                                                                       /// Maximum allowed duration in sec.
                                                                       /// </summary>
                                                                       private const double MaxDuration = 0.01d;
                                                                   }
 English