SpecialChar

SpecialChar class

Classe base per caratteri speciali nel documento.

public class SpecialChar : Inline

Proprietà

Nome Descrizione
CustomNodeId { get; set; } Specifica l’identificatore del nodo personalizzato.
virtual Document { get; } Ottiene il documento a cui appartiene questo nodo.
Font { get; } Fornisce l’accesso alla formattazione del carattere di questo oggetto.
virtual IsComposite { get; } Restituisce vero se questo nodo può contenere altri nodi.
IsDeleteRevision { get; } Restituisce true se questo oggetto è stato eliminato in Microsoft Word mentre era abilitato il rilevamento delle modifiche.
IsFormatRevision { get; } Restituisce true se la formattazione dell’oggetto è stata modificata in Microsoft Word mentre era abilitato il rilevamento delle modifiche.
IsInsertRevision { get; } Restituisce true se questo oggetto è stato inserito in Microsoft Word mentre era abilitato il rilevamento delle modifiche.
IsMoveFromRevision { get; } Restituisce VERO se questo oggetto è stato spostato (eliminato) in Microsoft Word mentre era abilitato il rilevamento delle modifiche.
IsMoveToRevision { get; } Restituisce VERO se questo oggetto è stato spostato (inserito) in Microsoft Word mentre era abilitato il rilevamento delle modifiche.
NextSibling { get; } Ottiene il nodo immediatamente successivo a questo nodo.
override NodeType { get; } Restituisce NodeType.SpecialChar .
ParentNode { get; } Ottiene il genitore immediato di questo nodo.
ParentParagraph { get; } Recupera il genitoreParagraph di questo nodo.
PreviousSibling { get; } Ottiene il nodo immediatamente precedente a questo nodo.
Range { get; } Restituisce a Gamma oggetto che rappresenta la parte di un documento contenuta in questo nodo.

Metodi

Nome Descrizione
override Accept(DocumentVisitor) Accetta un visitatore.
Clone(bool) Crea un duplicato del nodo.
GetAncestor(NodeType) Ottiene il primo predecessore dell’oggetto specificatoNodeType .
GetAncestor(Type) Ottiene il primo predecessore del tipo di oggetto specificato.
override GetText() Ottiene il carattere speciale rappresentato da questo nodo.
NextPreOrder(Node) Ottiene il nodo successivo in base all’algoritmo di attraversamento dell’albero di preordine.
PreviousPreOrder(Node) Ottiene il nodo precedente in base all’algoritmo di attraversamento dell’albero di preordine.
Remove() Si rimuove dal genitore.
ToString(SaveFormat) Esporta il contenuto del nodo in una stringa nel formato specificato.
ToString(SaveOptions) Esporta il contenuto del nodo in una stringa utilizzando le opzioni di salvataggio specificate.

Osservazioni

Un documento di Microsoft Word può includere un numero di caratteri speciali che rappresentano campi, campi modulo, forme, oggetti OLE, note a piè di pagina ecc. Per l’elenco di caratteri speciali, vedereControlChar.

Special Char è un nodo inline e può essere solo un figlio di Paragrafo.

Special Char char viene utilizzato come classe base per classi più specifiche che rappresentano caratteri speciali per i quali Aspose.Words fornisce l’accesso programmatico. Special Char class viene utilizzata anche per rappresentare un carattere speciale per il quale Aspose.Words non fornisce un accesso programmatico dettagliato.

Esempi

Mostra come utilizzare un’implementazione di DocumentVisitor per rimuovere tutto il contenuto nascosto da un documento.

{
    Document doc = new Document(MyDir + "Hidden content.docx");

    RemoveHiddenContentVisitor hiddenContentRemover = new RemoveHiddenContentVisitor();

    // Di seguito sono riportati tre tipi di campi che possono accettare un visitatore del documento,
    // che gli consentirà di visitare il nodo di accettazione e quindi di attraversare i suoi nodi figli in modo approfondito.
    // 1 - Nodo paragrafo:
    Paragraph para = (Paragraph) doc.GetChild(NodeType.Paragraph, 4, true);
    para.Accept(hiddenContentRemover);

    // 2 - Nodo tabella:
    Table table = doc.FirstSection.Body.Tables[0];
    table.Accept(hiddenContentRemover);

    // 3 - Nodo documento:
    doc.Accept(hiddenContentRemover);

    doc.Save(ArtifactsDir + "Font.RemoveHiddenContentFromDocument.docx");

/// <summary>
/// Rimuove tutti i nodi visitati contrassegnati come "contenuto nascosto".
/// </summary>
public class RemoveHiddenContentVisitor : DocumentVisitor
{
    /// <summary>
    /// Chiamato quando viene rilevato un nodo FieldStart nel documento.
    /// </summary>
    public override VisitorAction VisitFieldStart(FieldStart fieldStart)
    {
        if (fieldStart.Font.Hidden)
            fieldStart.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando viene rilevato un nodo FieldEnd nel documento.
    /// </summary>
    public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
    {
        if (fieldEnd.Font.Hidden)
            fieldEnd.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando viene rilevato un nodo FieldSeparator nel documento.
    /// </summary>
    public override VisitorAction VisitFieldSeparator(FieldSeparator fieldSeparator)
    {
        if (fieldSeparator.Font.Hidden)
            fieldSeparator.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando viene rilevato un nodo Run nel documento.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        if (run.Font.Hidden)
            run.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando si incontra un nodo Paragrafo nel documento.
    /// </summary>
    public override VisitorAction VisitParagraphStart(Paragraph paragraph)
    {
        if (paragraph.ParagraphBreakFont.Hidden)
            paragraph.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando viene rilevato un FormField nel documento.
    /// </summary>
    public override VisitorAction VisitFormField(FormField formField)
    {
        if (formField.Font.Hidden)
            formField.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando viene rilevato un GroupShape nel documento.
    /// </summary>
    public override VisitorAction VisitGroupShapeStart(GroupShape groupShape)
    {
        if (groupShape.Font.Hidden)
            groupShape.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando viene rilevata una forma nel documento.
    /// </summary>
    public override VisitorAction VisitShapeStart(Shape shape)
    {
        if (shape.Font.Hidden)
            shape.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando viene rilevato un commento nel documento.
    /// </summary>
    public override VisitorAction VisitCommentStart(Comment comment)
    {
        if (comment.Font.Hidden)
            comment.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando viene rilevata una nota a piè di pagina nel documento.
    /// </summary>
    public override VisitorAction VisitFootnoteStart(Footnote footnote)
    {
        if (footnote.Font.Hidden)
            footnote.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando viene rilevato uno SpecialCharacter nel documento.
    /// </summary>
    public override VisitorAction VisitSpecialChar(SpecialChar specialChar)
    {
        if (specialChar.Font.Hidden)
            specialChar.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando la visita di un nodo Tabella è terminata nel documento.
    /// </summary>
    public override VisitorAction VisitTableEnd(Table table)
    {
        // Il contenuto all'interno delle celle della tabella potrebbe avere il flag del contenuto nascosto, ma le tabelle stesse no.
        // Se questa tabella non avesse altro che contenuto nascosto, questo visitatore lo avrebbe rimosso tutto,
        // e non ci sarebbero più nodi figli.
        // Pertanto, possiamo anche trattare la tabella stessa come contenuto nascosto e rimuoverla.
        // Le tabelle vuote ma senza contenuto nascosto avranno celle con paragrafi vuoti all'interno,
        // che questo visitatore non rimuoverà.
        if (!table.HasChildNodes)
            table.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando la visita di un nodo Cell è terminata nel documento.
    /// </summary>
    public override VisitorAction VisitCellEnd(Cell cell)
    {
        if (!cell.HasChildNodes && cell.ParentNode != null)
            cell.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Chiamato quando la visita di un nodo Riga è terminata nel documento.
    /// </summary>
    public override VisitorAction VisitRowEnd(Row row)
    {
        if (!row.HasChildNodes && row.ParentNode != null)
            row.Remove();

        return VisitorAction.Continue;
    }
}

Guarda anche