MemoryFontSource

MemoryFontSource(byte[])

Ctor.

public MemoryFontSource(byte[] fontData)
ParametroTipoDescrizione
fontDataByte[]Dati di carattere binario.

Esempi

Mostra come utilizzare una matrice di byte con i dati di un file di caratteri come origine dei caratteri.

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

Guarda anche


MemoryFontSource(byte[], int)

Ctor.

public MemoryFontSource(byte[] fontData, int priority)
ParametroTipoDescrizione
fontDataByte[]Dati di carattere binario.
priorityInt32Priorità della fonte del carattere. Vedi ilPriority descrizione della proprietà per ulteriori informazioni.

Esempi

Mostra come utilizzare una matrice di byte con i dati di un file di caratteri come origine dei caratteri.

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

Guarda anche


MemoryFontSource(byte[], int, string)

Ctor.

public MemoryFontSource(byte[] fontData, int priority, string cacheKey)
ParametroTipoDescrizione
fontDataByte[]Dati di carattere binario.
priorityInt32Priorità della fonte del carattere. Vedi ilPriority descrizione della proprietà per ulteriori informazioni.
cacheKeyStringLa chiave di questa origine nella cache. VedereCacheKey descrizione della proprietà per ulteriori informazioni.

Esempi

Mostra come velocizzare il processo di inizializzazione della cache dei caratteri.

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>
/// Carica i dati dei caratteri solo quando richiesto invece di archiviarli nella memoria
/// per l'intera durata dell'oggetto "FontSettings".
/// </summary>
private class SearchCacheStream : StreamFontSource
{
    public SearchCacheStream(string cacheKey):base(0, cacheKey)
    {
    }

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

Guarda anche