SpecialChar

SpecialChar class

Basisklasse für Sonderzeichen im Dokument.

public class SpecialChar : Inline

Eigenschaften

Name Beschreibung
CustomNodeId { get; set; } Gibt die benutzerdefinierte Knotenkennung an.
virtual Document { get; } Ruft das Dokument ab, zu dem dieser Knoten gehört.
Font { get; } Bietet Zugriff auf die Schriftformatierung dieses Objekts.
virtual IsComposite { get; } Gibt wahr zurück, wenn dieser Knoten andere Knoten enthalten kann.
IsDeleteRevision { get; } Gibt „true“ zurück, wenn dieses Objekt in Microsoft Word gelöscht wurde, während die Änderungsnachverfolgung aktiviert war.
IsFormatRevision { get; } Gibt „true“ zurück, wenn die Formatierung des Objekts in Microsoft Word geändert wurde, während die Änderungsverfolgung aktiviert war.
IsInsertRevision { get; } Gibt „true“ zurück, wenn dieses Objekt in Microsoft Word eingefügt wurde, während die Änderungsverfolgung aktiviert war.
IsMoveFromRevision { get; } gibt zurück Stimmt wenn dieses Objekt in Microsoft Word verschoben (gelöscht) wurde, während die Änderungsnachverfolgung aktiviert war.
IsMoveToRevision { get; } gibt zurück Stimmt wenn dieses Objekt in Microsoft Word verschoben (eingefügt) wurde, während die Änderungsnachverfolgung aktiviert war.
NextSibling { get; } Ruft den Knoten ab, der diesem Knoten unmittelbar folgt.
override NodeType { get; } gibt zurück NodeType.SpecialChar .
ParentNode { get; } Ruft den unmittelbar übergeordneten Knoten dieses Knotens ab.
ParentParagraph { get; } Ruft das übergeordnete Element abParagraph dieses Knotens.
PreviousSibling { get; } Ruft den Knoten unmittelbar vor diesem Knoten ab.
Range { get; } Gibt a zurück Bereich Objekt, das den Teil eines Dokuments darstellt, das in diesem Knoten enthalten ist.

Methoden

Name Beschreibung
override Accept(DocumentVisitor) Akzeptiert einen Besucher.
Clone(bool) Erstellt ein Duplikat des Knotens.
GetAncestor(NodeType) Ruft den ersten Vorfahren der angegebenen abNodeType .
GetAncestor(Type) Ruft den ersten Vorfahren des angegebenen Objekttyps ab.
override GetText() Ruft das Sonderzeichen ab, das dieser Knoten darstellt.
NextPreOrder(Node) Ruft den nächsten Knoten gemäß dem Traversalalgorithmus des Vorbestellungsbaums ab.
PreviousPreOrder(Node) Ruft den vorherigen Knoten gemäß dem Traversalalgorithmus des Vorbestellungsbaums ab.
Remove() Entfernt sich selbst vom übergeordneten Element.
ToString(SaveFormat) Exportiert den Inhalt des Knotens in einen String im angegebenen Format.
ToString(SaveOptions) Exportiert den Inhalt des Knotens unter Verwendung der angegebenen Speicheroptionen in einen String.

Bemerkungen

Ein Microsoft Word-Dokument kann eine Reihe von Sonderzeichen enthalten, die Felder, Formularfelder, Formen, OLE-Objekte, Fußnoten usw. darstellen. Für die Liste von Sonderzeichen sieheControlChar.

Sonderzeichen ist ein Inline-Knoten und kann nur ein Kind von sein Absatz.

Sonderzeichen char wird als Basisklasse für spezifischere Klassen verwendet, die Sonderzeichen darstellen, für die Aspose.Words programmgesteuerten Zugriff bereitstellt. Die Sonderzeichen Die Klasse wird auch selbst verwendet, um Sonderzeichen darzustellen, für die Aspose.Words keinen detaillierten programmgesteuerten Zugriff bietet.

Beispiele

Zeigt, wie eine DocumentVisitor-Implementierung verwendet wird, um alle ausgeblendeten Inhalte aus einem Dokument zu entfernen.

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

    RemoveHiddenContentVisitor hiddenContentRemover = new RemoveHiddenContentVisitor();

    // Unten sind drei Arten von Feldern, die einen Dokumentbesucher akzeptieren können,
    // was es ihm ermöglicht, den akzeptierenden Knoten zu besuchen und dann seine untergeordneten Knoten in einer Tiefe-zuerst-Weise zu durchlaufen.
    // 1 - Absatzknoten:
    Paragraph para = (Paragraph) doc.GetChild(NodeType.Paragraph, 4, true);
    para.Accept(hiddenContentRemover);

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

    // 3 - Dokumentenknoten:
    doc.Accept(hiddenContentRemover);

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

/// <summary>
/// Entfernt alle besuchten Knoten, die als "versteckter Inhalt" markiert sind.
/// </summary>
public class RemoveHiddenContentVisitor : DocumentVisitor
{
    /// <summary>
    /// Wird aufgerufen, wenn im Dokument ein FieldStart-Knoten gefunden wird.
    /// </summary>
    public override VisitorAction VisitFieldStart(FieldStart fieldStart)
    {
        if (fieldStart.Font.Hidden)
            fieldStart.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn im Dokument ein FieldEnd-Knoten gefunden wird.
    /// </summary>
    public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
    {
        if (fieldEnd.Font.Hidden)
            fieldEnd.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn im Dokument ein FieldSeparator-Knoten gefunden wird.
    /// </summary>
    public override VisitorAction VisitFieldSeparator(FieldSeparator fieldSeparator)
    {
        if (fieldSeparator.Font.Hidden)
            fieldSeparator.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn im Dokument ein Run-Knoten gefunden wird.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        if (run.Font.Hidden)
            run.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn im Dokument ein Paragraph-Knoten gefunden wird.
    /// </summary>
    public override VisitorAction VisitParagraphStart(Paragraph paragraph)
    {
        if (paragraph.ParagraphBreakFont.Hidden)
            paragraph.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn im Dokument ein FormField gefunden wird.
    /// </summary>
    public override VisitorAction VisitFormField(FormField formField)
    {
        if (formField.Font.Hidden)
            formField.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn im Dokument ein GroupShape gefunden wird.
    /// </summary>
    public override VisitorAction VisitGroupShapeStart(GroupShape groupShape)
    {
        if (groupShape.Font.Hidden)
            groupShape.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn im Dokument ein Shape gefunden wird.
    /// </summary>
    public override VisitorAction VisitShapeStart(Shape shape)
    {
        if (shape.Font.Hidden)
            shape.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn im Dokument ein Kommentar gefunden wird.
    /// </summary>
    public override VisitorAction VisitCommentStart(Comment comment)
    {
        if (comment.Font.Hidden)
            comment.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn im Dokument eine Fußnote gefunden wird.
    /// </summary>
    public override VisitorAction VisitFootnoteStart(Footnote footnote)
    {
        if (footnote.Font.Hidden)
            footnote.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn im Dokument ein Sonderzeichen gefunden wird.
    /// </summary>
    public override VisitorAction VisitSpecialChar(SpecialChar specialChar)
    {
        if (specialChar.Font.Hidden)
            specialChar.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn der Besuch eines Tabellenknotens im Dokument beendet wird.
    /// </summary>
    public override VisitorAction VisitTableEnd(Table table)
    {
        // Der Inhalt innerhalb von Tabellenzellen kann das Hidden-Content-Flag haben, die Tabellen selbst jedoch nicht.
        // Wenn diese Tabelle nur versteckte Inhalte hätte, hätte dieser Besucher alles davon entfernt,
        // und es gäbe keine untergeordneten Knoten mehr.
        // Somit können wir auch die Tabelle selbst als versteckten Inhalt behandeln und entfernen.
        // Tabellen, die leer sind, aber keinen versteckten Inhalt haben, haben Zellen mit leeren Absätzen darin,
        // die dieser Besucher nicht entfernen wird.
        if (!table.HasChildNodes)
            table.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn der Besuch eines Cell-Knotens im Dokument beendet wird.
    /// </summary>
    public override VisitorAction VisitCellEnd(Cell cell)
    {
        if (!cell.HasChildNodes && cell.ParentNode != null)
            cell.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Wird aufgerufen, wenn der Besuch eines Zeilenknotens im Dokument beendet wird.
    /// </summary>
    public override VisitorAction VisitRowEnd(Row row)
    {
        if (!row.HasChildNodes && row.ParentNode != null)
            row.Remove();

        return VisitorAction.Continue;
    }
}

Siehe auch