FontSavingArgsFontStream Property

Allows to specify the stream where the font will be saved to.

Namespace:  Aspose.Words.Saving
Assembly:  Aspose.Words (in Aspose.Words.dll) Version: 20.3
Syntax
public Stream FontStream { get; set; }

Property Value

Type: Stream
Remarks

This property allows you to save fonts to streams instead of files during HTML export.

The default value is null. When this property is null, the font will be saved to a file specified in the FontFileName property.

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