ResourceSavingArgs

ResourceSavingArgs class

Provides data for the ResourceSaving event.

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

public class ResourceSavingArgs

Properties

NameDescription
Document { get; }Gets the document object that is currently being saved.
KeepResourceStreamOpen { get; set; }Specifies whether Aspose.Words should keep the stream open or close it after saving a resource.
ResourceFileName { get; set; }Gets or sets the file name (without path) where the resource will be saved to.
ResourceFileUri { get; set; }Gets or sets the uniform resource identifier (URI) used to reference the resource file from the document.
ResourceStream { get; set; }Allows to specify the stream where the resource will be saved to.

Remarks

By default, when Aspose.Words saves a document to fixed page HTML or SVG, it saves each resource into a separate file. Aspose.Words uses the document file name and a unique number to generate unique file name for each resource found in the document.

ResourceSavingArgs allows to redefine how resource file names are generated or to completely circumvent saving of resources into files by providing your own stream objects.

To apply your own logic for generating resource file names use the ResourceFileName property.

To save resources into streams instead of files, use the ResourceStream property.

Examples

Shows how to use a callback to track external resources created while converting a document to HTML.

public void ResourceSavingCallback()
{
    Document doc = new Document(MyDir + "Bullet points with alternative font.docx");

    FontSavingCallback callback = new FontSavingCallback();

    HtmlFixedSaveOptions saveOptions = new HtmlFixedSaveOptions
    {
        ResourceSavingCallback = callback
    };

    doc.Save(ArtifactsDir + "HtmlFixedSaveOptions.UsingMachineFonts.html", saveOptions);

    Console.WriteLine(callback.GetText());
}

private class FontSavingCallback : IResourceSavingCallback
{
    /// <summary>
    /// Called when Aspose.Words saves an external resource to fixed page HTML or SVG.
    /// </summary>
    public void ResourceSaving(ResourceSavingArgs args)
    {
        mText.AppendLine($"Original document URI:\t{args.Document.OriginalFileName}");
        mText.AppendLine($"Resource being saved:\t{args.ResourceFileName}");
        mText.AppendLine($"Full uri after saving:\t{args.ResourceFileUri}\n");
    }

    public string GetText()
    {
        return mText.ToString();
    }

    private readonly StringBuilder mText = new StringBuilder();
}

See Also