IFontSavingCallback Interface

Implement this interface if you want to receive notifications and control how Aspose.Words saves fonts when exporting a document to HTML format.

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

The IFontSavingCallback type exposes the following members.

Methods
  NameDescription
Public methodCode exampleFontSaving
Called when Aspose.Words is about to save a font resource.
Examples
Shows how to define custom logic for handling font exporting when saving to HTML based formats.
public void SaveHtmlExportFonts()
{
    Document doc = new Document(MyDir + "Rendering.docx");

    // Set the option to export font resources
    HtmlSaveOptions options = new HtmlSaveOptions(SaveFormat.Html);
    options.ExportFontResources = true;
    // Create and pass the object which implements the handler methods
    options.FontSavingCallback = new HandleFontSaving();

    doc.Save(ArtifactsDir + "Document.SaveHtmlExportFonts.html", options);
}

/// <summary>
/// Prints information about fonts and saves them alongside their output .html.
/// </summary>
public class HandleFontSaving : IFontSavingCallback
{
    void IFontSavingCallback.FontSaving(FontSavingArgs args)
    {
        // Print information about fonts
        Console.Write($"Font:\t{args.FontFamilyName}");
        if (args.Bold) Console.Write(", bold");
        if (args.Italic) Console.Write(", italic");
        Console.WriteLine($"\nSource:\t{args.OriginalFileName}, {args.OriginalFileSize} bytes\n");

        Assert.True(args.IsExportNeeded);
        Assert.True(args.IsSubsettingNeeded);

        // We can designate where each font will be saved by either specifying a file name, or creating a new stream
        args.FontFileName = args.OriginalFileName.Split(Path.DirectorySeparatorChar).Last();

        args.FontStream = 
            new FileStream(ArtifactsDir + args.OriginalFileName.Split(Path.DirectorySeparatorChar).Last(), FileMode.Create);
        Assert.False(args.KeepFontStreamOpen);

        // We can access the source document from here also
        Assert.True(args.Document.OriginalFileName.EndsWith("Rendering.docx"));
    }
}
See Also