FontFallbackSettings

FontFallbackSettings class

Specifica le impostazioni del meccanismo di fallback dei caratteri.

public class FontFallbackSettings

Metodi

Nome Descrizione
BuildAutomatic() Crea automaticamente le impostazioni di fallback eseguendo la scansione dei caratteri disponibili.
Load(Stream) Carica le impostazioni di fallback dal flusso XML.
Load(string) Carica le impostazioni di fallback dei caratteri dal file XML.
LoadMsOfficeFallbackSettings() Carica impostazioni di fallback predefinite che imitano il fallback di Microsoft Word e utilizzano i caratteri di Microsoft Office.
LoadNotoFallbackSettings() Carica le impostazioni di fallback predefinite che utilizzano i caratteri di Google Noto.
Save(Stream) Salva le impostazioni di fallback correnti nello streaming.
Save(string) Salva le impostazioni di fallback correnti su file.

Osservazioni

Per impostazione predefinita, le impostazioni di fallback vengono inizializzate con impostazioni predefinite che imitano il fallback di Microsoft Word.

Esempi

Mostra come distribuire i caratteri di fallback tra gli intervalli di codice dei caratteri Unicode.

Document doc = new Document();

FontSettings fontSettings = new FontSettings();
doc.FontSettings = fontSettings;
FontFallbackSettings fontFallbackSettings = fontSettings.FallbackSettings;

// Configura le nostre impostazioni dei caratteri per i caratteri di origine solo dalla cartella "MyFonts".
FolderFontSource folderFontSource = new FolderFontSource(FontsDir, false);
fontSettings.SetFontsSources(new FontSourceBase[] {folderFontSource});

// Chiamare il metodo "BuildAutomatic" genererà uno schema di fallback che
// distribuisce i caratteri accessibili sul maggior numero possibile di codici di caratteri Unicode.
// Nel nostro caso, ha accesso solo alla manciata di caratteri all'interno della cartella "MyFonts".
fontFallbackSettings.BuildAutomatic();
fontFallbackSettings.Save(ArtifactsDir + "FontSettings.FallbackSettingsCustom.BuildAutomatic.xml");

// Possiamo anche caricare uno schema di sostituzione personalizzato da un file come questo.
// Questo schema applica il carattere "AllegroOpen" ai blocchi Unicode "0000-00ff", il carattere "AllegroOpen" a "0100-024f",
// e il carattere "M+ 2m" in tutti gli altri intervalli non coperti dagli altri caratteri nello schema.
fontFallbackSettings.Load(MyDir + "Custom font fallback settings.xml");

// Crea un generatore di documenti e imposta il suo carattere su uno che non esiste in nessuna delle nostre fonti.
// Le nostre impostazioni dei caratteri invocheranno lo schema di fallback per i caratteri che digitiamo utilizzando il carattere non disponibile.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Font.Name = "Missing Font";

// Usa il builder per stampare ogni carattere Unicode da 0x0021 a 0x052F,
// con linee descrittive che dividono i blocchi Unicode che abbiamo definito nel nostro schema di fallback dei caratteri personalizzato.
for (int i = 0x0021; i < 0x0530; i++)
{
    switch (i)
    {
        case 0x0021:
            builder.Writeln(
                "\n\n0x0021 - 0x00FF: \nBasic Latin/Latin-1 Supplement Unicode blocks in \"AllegroOpen\" font:");
            break;
        case 0x0100:
            builder.Writeln(
                "\n\n0x0100 - 0x024F: \nLatin Extended A/B blocks, mostly in \"AllegroOpen\" font:");
            break;
        case 0x0250:
            builder.Writeln("\n\n0x0250 - 0x052F: \nIPA/Greek/Cyrillic blocks in \"M+ 2m\" font:");
            break;
    }

    builder.Write($"{Convert.ToChar(i)}");
}

doc.Save(ArtifactsDir + "FontSettings.FallbackSettingsCustom.pdf");

Guarda anche