IResourceSavingCallback Interface

Implement this interface if you want to control how Aspose.Words saves external resources (images, fonts and css) when saving a document to fixed page HTML or SVG.

Namespace:  Aspose.Words.Saving
Assembly:  Aspose.Words (in Aspose.Words.dll) Version: 20.3
Syntax
public interface IResourceSavingCallback

The IResourceSavingCallback type exposes the following members.

Methods
  NameDescription
Public methodCode exampleResourceSaving
Called when Aspose.Words saves an external resource to fixed page HTML or SVG formats.
Examples
Shows how used target machine fonts to display the document.
public void UsingMachineFonts()
{
    Document doc = new Document(MyDir + "Bullet points with alternative font.docx");

    HtmlFixedSaveOptions saveOptions = new HtmlFixedSaveOptions
    {
        UseTargetMachineFonts = true,
        FontFormat = ExportFontFormat.Ttf,
        ExportEmbeddedFonts = false,
        ResourceSavingCallback = new ResourceSavingCallback()
    };

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

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

        args.ResourceStream = new MemoryStream();
        args.KeepResourceStreamOpen = true;

        string extension = Path.GetExtension(args.ResourceFileName);
        switch (extension)
        {
            case ".ttf":
            case ".woff":
            {
                Assert.Fail(
                    "'ResourceSavingCallback' is not fired for fonts when 'UseTargetMachineFonts' is true");
                break;
            }
        }
    }
}
See Also