StreamFontSource

StreamFontSource class

用户定义流字体源的基类。

要了解更多信息,请访问使用字体文档文章。

public abstract class StreamFontSource : FontSourceBase

特性

姓名描述
CacheKey { get; }缓存中此源的键。
Priority { get; }返回字体源优先级。
Type { get; }返回字体源的类型。
WarningCallback { get; set; }在处理字体源期间检测到可能导致格式保真度损失的问题时调用。

方法

姓名描述
GetAvailableFonts()返回通过此源可用的字体列表。
abstract OpenFontDataStream()此方法应根据需要打开包含字体数据的流。

评论

为了使用流字体源,您应该从StreamFontSource 并提供实施OpenFontDataStream方法。

OpenFontDataStream方法可以被调用多次。当 Aspose.Words 扫描提供的字体源以获取可用字体列表时,它将第一次被称为 。稍后,如果文档中使用了 字体,则可能会调用它来解析字体数据并将字体数据嵌入到某些输出格式中。

StreamFontSource可能很有用,因为它允许仅在需要时加载字体数据 ,而不是将其存储在内存中FontSettings寿命。

例子

展示如何从流加载字体。

public void StreamFontSourceFileRendering()
{
    FontSettings fontSettings = new FontSettings();
    fontSettings.SetFontsSources(new FontSourceBase[] {new StreamFontSourceFile()});

    DocumentBuilder builder = new DocumentBuilder();
    builder.Document.FontSettings = fontSettings;
    builder.Font.Name = "Kreon-Regular";
    builder.Writeln("Test aspose text when saving to PDF.");

    builder.Document.Save(ArtifactsDir + "FontSettings.StreamFontSourceFileRendering.pdf");
}

/// <summary>
/// 仅在需要时加载字体数据而不是将其存储在内存中
/// 在“FontSettings”对象的整个生命周期内。
/// </summary>
private class StreamFontSourceFile : StreamFontSource
{
    public override Stream OpenFontDataStream()
    {
        return File.OpenRead(FontsDir + "Kreon-Regular.ttf");
    }
}

也可以看看