SpecialChar

SpecialChar class

Classe de base pour les caractères spéciaux dans le document.

Pour en savoir plus, visitez leModèle d’objet de document (DOM) Aspose.Words article de documentation.

public class SpecialChar : Inline

Propriétés

NomLa description
CustomNodeId { get; set; }Spécifie l’identifiant de nœud personnalisé.
virtual Document { get; }Obtient le document auquel appartient ce nœud.
Font { get; }Donne accès à la mise en forme de la police de cet objet.
virtual IsComposite { get; }Retoursvrai si ce nœud peut contenir d’autres nœuds.
IsDeleteRevision { get; }Renvoie vrai si cet objet a été supprimé dans Microsoft Word alors que le suivi des modifications était activé.
IsFormatRevision { get; }Renvoie true si la mise en forme de l’objet a été modifiée dans Microsoft Word alors que le suivi des modifications était activé.
IsInsertRevision { get; }Renvoie vrai si cet objet a été inséré dans Microsoft Word alors que le suivi des modifications était activé.
IsMoveFromRevision { get; }Retoursvrai si cet objet a été déplacé (supprimé) dans Microsoft Word alors que le suivi des modifications était activé.
IsMoveToRevision { get; }Retoursvrai si cet objet a été déplacé (inséré) dans Microsoft Word alors que le suivi des modifications était activé.
NextSibling { get; }Obtient le nœud suivant immédiatement ce nœud.
override NodeType { get; }RetoursSpecialChar .
ParentNode { get; }Obtient le parent immédiat de ce nœud.
ParentParagraph { get; }Récupère le parentParagraph de ce nœud.
PreviousSibling { get; }Obtient le nœud précédant immédiatement ce nœud.
Range { get; }Renvoie unRangeobjet qui représente la partie d’un document contenue dans ce nœud.

Méthodes

NomLa description
override Accept(DocumentVisitor)Accepte un visiteur.
Clone(bool)Crée un doublon du nœud.
GetAncestor(NodeType)Obtient le premier ancêtre du spécifiéNodeType .
GetAncestor(Type)Obtient le premier ancêtre du type d’objet spécifié.
override GetText()Obtient le caractère spécial que ce nœud représente.
NextPreOrder(Node)Obtient le nœud suivant selon l’algorithme de parcours de l’arbre de pré-ordre.
PreviousPreOrder(Node)Obtient le nœud précédent selon l’algorithme de parcours de l’arbre de pré-ordre.
Remove()Se supprime du parent.
ToString(SaveFormat)Exporte le contenu du nœud dans une chaîne au format spécifié.
ToString(SaveOptions)Exporte le contenu du nœud dans une chaîne en utilisant les options de sauvegarde spécifiées.

Remarques

Un document Microsoft Word peut inclure un certain nombre de caractères spéciaux qui représentent des champs, des champs de formulaire, des formes, des objets OLE, des notes de bas de page, etc. Pour la liste des caractères spéciaux, voirControlChar.

SpecialChar est un nœud en ligne et ne peut être qu’un enfant deParagraph.

SpecialChar char est utilisé comme classe de base pour des classes plus spécifiques qui représentent des caractères spéciaux pour lesquels Aspose.Words fournit un accès programmatique. LeSpecialCharla classe est également utilisée elle-même pour représenter un caractère spécial pour lequel Aspose.Words ne fournit pas d’accès programmatique détaillé.

Exemples

Montre comment utiliser une implémentation DocumentVisitor pour supprimer tout le contenu masqué d’un document.

public void RemoveHiddenContentFromDocument()
{
    Document doc = new Document(MyDir + "Hidden content.docx");
    RemoveHiddenContentVisitor hiddenContentRemover = new RemoveHiddenContentVisitor();

    // Vous trouverez ci-dessous trois types de champs pouvant accepter un visiteur de document,
    // ce qui lui permettra de visiter le nœud accepteur, puis de parcourir ses nœuds enfants de manière approfondie.
    // 1 - Nœud de paragraphe :
    Paragraph para = (Paragraph)doc.GetChild(NodeType.Paragraph, 4, true);
    para.Accept(hiddenContentRemover);

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

    // 3 - Nœud de document :
    doc.Accept(hiddenContentRemover);

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

/// <summary>
/// Supprime tous les nœuds visités marqués comme « contenu caché ».
/// </summary>
public class RemoveHiddenContentVisitor : DocumentVisitor
{
    /// <summary>
    /// Appelé lorsqu'un nœud FieldStart est rencontré dans le document.
    /// </summary>
    public override VisitorAction VisitFieldStart(FieldStart fieldStart)
    {
        if (fieldStart.Font.Hidden)
            fieldStart.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsqu'un nœud FieldEnd est rencontré dans le document.
    /// </summary>
    public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
    {
        if (fieldEnd.Font.Hidden)
            fieldEnd.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsqu'un nœud FieldSeparator est rencontré dans le document.
    /// </summary>
    public override VisitorAction VisitFieldSeparator(FieldSeparator fieldSeparator)
    {
        if (fieldSeparator.Font.Hidden)
            fieldSeparator.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsqu'un nœud Run est rencontré dans le document.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        if (run.Font.Hidden)
            run.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsqu'un nœud Paragraphe est rencontré dans le document.
    /// </summary>
    public override VisitorAction VisitParagraphStart(Paragraph paragraph)
    {
        if (paragraph.ParagraphBreakFont.Hidden)
            paragraph.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsqu'un FormField est rencontré dans le document.
    /// </summary>
    public override VisitorAction VisitFormField(FormField formField)
    {
        if (formField.Font.Hidden)
            formField.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsqu'un GroupShape est rencontré dans le document.
    /// </summary>
    public override VisitorAction VisitGroupShapeStart(GroupShape groupShape)
    {
        if (groupShape.Font.Hidden)
            groupShape.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsqu'une forme est rencontrée dans le document.
    /// </summary>
    public override VisitorAction VisitShapeStart(Shape shape)
    {
        if (shape.Font.Hidden)
            shape.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsqu'un commentaire est rencontré dans le document.
    /// </summary>
    public override VisitorAction VisitCommentStart(Comment comment)
    {
        if (comment.Font.Hidden)
            comment.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsqu'une note de bas de page est rencontrée dans le document.
    /// </summary>
    public override VisitorAction VisitFootnoteStart(Footnote footnote)
    {
        if (footnote.Font.Hidden)
            footnote.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsqu'un caractère spécial est rencontré dans le document.
    /// </summary>
    public override VisitorAction VisitSpecialChar(SpecialChar specialChar)
    {
        Console.WriteLine(specialChar.GetText());

        if (specialChar.Font.Hidden)
            specialChar.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsque la visite d'un nœud de table est terminée dans le document.
    /// </summary>
    public override VisitorAction VisitTableEnd(Table table)
    {
        // Le contenu à l'intérieur des cellules du tableau peut avoir l'indicateur de contenu masqué, mais les tableaux eux-mêmes ne le peuvent pas.
        // Si cette table n'avait que du contenu caché, ce visiteur l'aurait supprimé en entier,
        // et il n'y aurait plus de nœuds enfants.
        // Ainsi, nous pouvons également traiter la table elle-même comme un contenu caché et la supprimer.
        // Les tableaux qui sont vides mais qui n'ont pas de contenu caché auront des cellules avec des paragraphes vides à l'intérieur,
        // que ce visiteur ne supprimera pas.
        if (!table.HasChildNodes)
            table.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsque la visite d'un nœud Cell est terminée dans le document.
    /// </summary>
    public override VisitorAction VisitCellEnd(Cell cell)
    {
        if (!cell.HasChildNodes && cell.ParentNode != null)
            cell.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Appelé lorsque la visite d'un nœud Row est terminée dans le document.
    /// </summary>
    public override VisitorAction VisitRowEnd(Row row)
    {
        if (!row.HasChildNodes && row.ParentNode != null)
            row.Remove();

        return VisitorAction.Continue;
    }
}

Voir également