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

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