IFontSavingCallback
内容
[
隐藏
]IFontSavingCallback interface
如果您想要接收通知并控制 Aspose.Words 在将文档导出为 HTML 格式时如何保存字体,请实现此接口。
public interface IFontSavingCallback
方法
| 姓名 | 描述 | 
|---|---|
| FontSaving(FontSavingArgs) | 当 Aspose.Words 即将保存字体资源时调用。 | 
例子
展示如何在保存为 HTML 时定义导出字体的自定义逻辑。
public void SaveExportedFonts()
{
    Document doc = new Document(MyDir + "Rendering.docx");
    // 配置一个 SaveOptions 对象以将字体导出到单独的文件。
    // 设置一个回调,以自定义方式处理字体保存。
    HtmlSaveOptions options = new HtmlSaveOptions
    {
        ExportFontResources = true,
        FontSavingCallback = new HandleFontSaving()
    };
    // 回调将导出 .ttf 文件并将其与输出文档一起保存。
    doc.Save(ArtifactsDir + "HtmlSaveOptions.SaveExportedFonts.html", options);
    foreach (string fontFilename in Array.FindAll(Directory.GetFiles(ArtifactsDir), s => s.EndsWith(".ttf")))
    {
        Console.WriteLine(fontFilename);
    }
}
/// <summary>
/// 打印有关导出字体的信息并将其保存在与其输出 .html 相同的本地系统文件夹中。
/// </summary>
public class HandleFontSaving : IFontSavingCallback
{
    void IFontSavingCallback.FontSaving(FontSavingArgs args)
    {
        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.Document.OriginalFileName.EndsWith("Rendering.docx"));
        Assert.True(args.IsExportNeeded);
        Assert.True(args.IsSubsettingNeeded);
        // 有两种方法可以保存导出的字体。
        // 1 - 将其保存到本地文件系统位置:
        args.FontFileName = args.OriginalFileName.Split(Path.DirectorySeparatorChar).Last();
        // 2 - 将其保存到流中:
        args.FontStream =
            new FileStream(ArtifactsDir + args.OriginalFileName.Split(Path.DirectorySeparatorChar).Last(), FileMode.Create);
        Assert.False(args.KeepFontStreamOpen);
    }
}
也可以看看
- 命名空间 Aspose.Words.Saving
- 部件 Aspose.Words