WarningInfoCollection

WarningInfoCollection class

Rappresenta una raccolta tipizzata diWarningInfo oggetti.

Per saperne di più, visita ilProgrammazione con documenti articolo di documentazione.

public class WarningInfoCollection : IEnumerable<WarningInfo>, IWarningCallback

Costruttori

NomeDescrizione
WarningInfoCollection()Default_Costruttore

Proprietà

NomeDescrizione
Count { get; }Ottiene il numero di elementi contenuti nella raccolta.
Item { get; }Ottiene un elemento all’indice specificato.

Metodi

NomeDescrizione
Clear()Rimuove tutti gli elementi dalla raccolta.
GetEnumerator()Restituisce un oggetto enumeratore che può essere utilizzato per scorrere tutti gli elementi nella raccolta.
Warning(WarningInfo)Implementa ilIWarningCallback interfaccia. Aggiunge un avviso a questa raccolta.

Osservazioni

È possibile utilizzare questo oggetto di raccolta come la forma più semplice diIWarningCallback Implementazione per raccogliere tutti gli avvisi generati da Aspose.Words durante un’operazione di caricamento o salvataggio. Creare un’istanza di questa classe e assegnarla aWarningCallback OWarningCallback proprietà.

Esempi

Mostra come impostare la proprietà per trovare la corrispondenza più vicina per un font mancante tra le sorgenti di font disponibili.

public void EnableFontSubstitution()
{
    // Apre un documento contenente testo formattato con un font che non esiste in nessuna delle nostre fonti di font.
    Document doc = new Document(MyDir + "Missing font.docx");

    // Assegna un callback per gestire gli avvisi di sostituzione dei font.
    HandleDocumentSubstitutionWarnings substitutionWarningHandler = new HandleDocumentSubstitutionWarnings();
    doc.WarningCallback = substitutionWarningHandler;

    // Imposta un nome di font predefinito e abilita la sostituzione dei font.
    FontSettings fontSettings = new FontSettings();
    fontSettings.SubstitutionSettings.DefaultFontSubstitution.DefaultFontName = "Arial";
    ;
    fontSettings.SubstitutionSettings.FontInfoSubstitution.Enabled = true;

    // Dopo la sostituzione del font, è necessario utilizzare le metriche originali.
    doc.LayoutOptions.KeepOriginalFontMetrics = true;

    // Se salviamo un documento con un font mancante, riceveremo un avviso di sostituzione del font.
    doc.FontSettings = fontSettings;
    doc.Save(ArtifactsDir + "FontSettings.EnableFontSubstitution.pdf");

    using (IEnumerator<WarningInfo> warnings = substitutionWarningHandler.FontWarnings.GetEnumerator())
        while (warnings.MoveNext())
            Console.WriteLine(warnings.Current.Description);

    // Possiamo anche verificare gli avvisi nella raccolta e cancellarli.
    Assert.AreEqual(WarningSource.Layout, substitutionWarningHandler.FontWarnings[0].Source);
    Assert.AreEqual(
        "Font '28 Days Later' has not been found. Using 'Calibri' font instead. Reason: alternative name from document.",
        substitutionWarningHandler.FontWarnings[0].Description);

    substitutionWarningHandler.FontWarnings.Clear();

    Assert.AreEqual(0, substitutionWarningHandler.FontWarnings.Count);
}

public class HandleDocumentSubstitutionWarnings : IWarningCallback
{
    /// <summary>
    /// Chiamato ogni volta che si verifica un avviso durante il caricamento/salvataggio.
    /// </summary>
    public void Warning(WarningInfo info)
    {
        if (info.WarningType == WarningType.FontSubstitution)
            FontWarnings.Warning(info);
    }

    public WarningInfoCollection FontWarnings = new WarningInfoCollection();
}

Guarda anche