MemoryFontSource

MemoryFontSource(byte[])

Directeur.

public MemoryFontSource(byte[] fontData)
ParamètreTaperLa description
fontDataByte[]Données de police binaires.

Exemples

Montre comment utiliser un tableau d’octets avec les données d’un fichier de police comme source de police.

byte[] fontBytes = File.ReadAllBytes(MyDir + "Alte DIN 1451 Mittelschrift.ttf");
MemoryFontSource memoryFontSource = new MemoryFontSource(fontBytes, 0);

Document doc = new Document();
doc.FontSettings = new FontSettings();
doc.FontSettings.SetFontsSources(new FontSourceBase[] {memoryFontSource});

Assert.AreEqual(FontSourceType.MemoryFont, memoryFontSource.Type);
Assert.AreEqual(0, memoryFontSource.Priority);

Voir également


MemoryFontSource(byte[], int)

Directeur.

public MemoryFontSource(byte[] fontData, int priority)
ParamètreTaperLa description
fontDataByte[]Données de police binaires.
priorityInt32Priorité de la source de police. Voir lePriority Description de la propriété pour plus d’informations.

Exemples

Montre comment utiliser un tableau d’octets avec les données d’un fichier de police comme source de police.

byte[] fontBytes = File.ReadAllBytes(MyDir + "Alte DIN 1451 Mittelschrift.ttf");
MemoryFontSource memoryFontSource = new MemoryFontSource(fontBytes, 0);

Document doc = new Document();
doc.FontSettings = new FontSettings();
doc.FontSettings.SetFontsSources(new FontSourceBase[] {memoryFontSource});

Assert.AreEqual(FontSourceType.MemoryFont, memoryFontSource.Type);
Assert.AreEqual(0, memoryFontSource.Priority);

Voir également


MemoryFontSource(byte[], int, string)

Directeur.

public MemoryFontSource(byte[] fontData, int priority, string cacheKey)
ParamètreTaperLa description
fontDataByte[]Données de police binaires.
priorityInt32Priorité de la source de police. Voir lePriority Description de la propriété pour plus d’informations.
cacheKeyStringLa clé de cette source dans le cache. VoirCacheKey Description de la propriété pour plus d’informations.

Exemples

Montre comment accélérer le processus d’initialisation du cache de polices.

public void LoadFontSearchCache()
{
    const string cacheKey1 = "Arvo";
    const string cacheKey2 = "Arvo-Bold";
    FontSettings parsedFonts = new FontSettings();
    FontSettings loadedCache = new FontSettings();

    parsedFonts.SetFontsSources(new FontSourceBase[]
    {
        new FileFontSource(FontsDir + "Arvo-Regular.ttf", 0, cacheKey1),
        new FileFontSource(FontsDir + "Arvo-Bold.ttf", 0, cacheKey2)
    });

    using (MemoryStream cacheStream = new MemoryStream())
    {
        parsedFonts.SaveSearchCache(cacheStream);
        loadedCache.SetFontsSources(new FontSourceBase[]
        {
            new SearchCacheStream(cacheKey1),                    
            new MemoryFontSource(File.ReadAllBytes(FontsDir + "Arvo-Bold.ttf"), 0, cacheKey2)
        }, cacheStream);
    }

    Assert.AreEqual(parsedFonts.GetFontsSources().Length, loadedCache.GetFontsSources().Length);
}

/// <summary>
/// Charge les données de police uniquement lorsque cela est nécessaire au lieu de les stocker dans la mémoire
/// pendant toute la durée de vie de l'objet "FontSettings".
/// </summary>
private class SearchCacheStream : StreamFontSource
{
    public SearchCacheStream(string cacheKey):base(0, cacheKey)
    {
    }

    public override Stream OpenFontDataStream()
    {
        return File.OpenRead(FontsDir + "Arvo-Regular.ttf");
    }
}

Voir également