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");
    }
}

Смотрите также