SpecialChar

SpecialChar class

Clase base para caracteres especiales en el documento.

Para obtener más información, visite elModelo de objetos de documento (DOM) de Aspose.Words artículo de documentación.

public class SpecialChar : Inline

Propiedades

NombreDescripción
CustomNodeId { get; set; }Especifica el identificador de nodo personalizado.
virtual Document { get; }Obtiene el documento al que pertenece este nodo.
Font { get; }Proporciona acceso al formato de fuente de este objeto.
virtual IsComposite { get; }Devolucionesverdadero si este nodo puede contener otros nodos.
IsDeleteRevision { get; }Devuelve verdadero si este objeto se eliminó en Microsoft Word mientras el seguimiento de cambios estaba habilitado.
IsFormatRevision { get; }Devuelve verdadero si se cambió el formato del objeto en Microsoft Word mientras el seguimiento de cambios estaba habilitado.
IsInsertRevision { get; }Devuelve verdadero si este objeto se insertó en Microsoft Word mientras el seguimiento de cambios estaba habilitado.
IsMoveFromRevision { get; }Devolucionesverdadero si este objeto se movió (eliminó) en Microsoft Word mientras el seguimiento de cambios estaba habilitado.
IsMoveToRevision { get; }Devolucionesverdadero si este objeto se movió (insertó) en Microsoft Word mientras el seguimiento de cambios estaba habilitado.
NextSibling { get; }Obtiene el nodo que sigue inmediatamente a este nodo.
override NodeType { get; }DevolucionesSpecialChar .
ParentNode { get; }Obtiene el padre inmediato de este nodo.
ParentParagraph { get; }Recupera el padreParagraph de este nodo.
PreviousSibling { get; }Obtiene el nodo inmediatamente anterior a este nodo.
Range { get; }Devuelve unRange objeto que representa la parte de un documento contenido en este nodo.

Métodos

NombreDescripción
override Accept(DocumentVisitor)Acepta un visitante.
Clone(bool)Crea un duplicado del nodo.
GetAncestor(NodeType)Obtiene el primer ancestro del especificadoNodeType .
GetAncestor(Type)Obtiene el primer antepasado del tipo de objeto especificado.
override GetText()Obtiene el carácter especial que representa este nodo.
NextPreOrder(Node)Obtiene el siguiente nodo según el algoritmo transversal del árbol de pedidos anticipados.
PreviousPreOrder(Node)Obtiene el nodo anterior según el algoritmo transversal del árbol de pedidos anticipados.
Remove()Se elimina del padre.
ToString(SaveFormat)Exporta el contenido del nodo a una cadena en el formato especificado.
ToString(SaveOptions)Exporta el contenido del nodo a una cadena usando las opciones de guardado especificadas.

Observaciones

Un documento de Microsoft Word puede incluir una cantidad de caracteres especiales que representan campos, campos de formulario, formas, objetos OLE, notas al pie, etc. Para obtener la lista de caracteres especiales, consulteControlChar.

SpecialChares un nodo en línea y sólo puede ser hijo deParagraph.

SpecialChar char se utiliza como clase base para clases más específicas que representan caracteres especiales para los que Aspose.Words proporciona acceso programático. ElSpecialChar La clase también se utiliza para representar un carácter especial para el cual Aspose.Words no proporciona acceso programático detallado.

Ejemplos

Muestra cómo utilizar una implementación de DocumentVisitor para eliminar todo el contenido oculto de un documento.

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

    // A continuación se muestran tres tipos de campos que pueden aceptar un visitante de documentos,
    // lo que le permitirá visitar el nodo de aceptación y luego atravesar sus nodos secundarios en profundidad.
    // 1 - Nodo de párrafo:
    Paragraph para = (Paragraph)doc.GetChild(NodeType.Paragraph, 4, true);
    para.Accept(hiddenContentRemover);

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

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

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

/// <summary>
/// Elimina todos los nodos visitados marcados como "contenido oculto".
/// </summary>
public class RemoveHiddenContentVisitor : DocumentVisitor
{
    /// <summary>
    /// Se llama cuando se encuentra un nodo FieldStart en el documento.
    /// </summary>
    public override VisitorAction VisitFieldStart(FieldStart fieldStart)
    {
        if (fieldStart.Font.Hidden)
            fieldStart.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando se encuentra un nodo FieldEnd en el documento.
    /// </summary>
    public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
    {
        if (fieldEnd.Font.Hidden)
            fieldEnd.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando se encuentra un nodo FieldSeparator en el documento.
    /// </summary>
    public override VisitorAction VisitFieldSeparator(FieldSeparator fieldSeparator)
    {
        if (fieldSeparator.Font.Hidden)
            fieldSeparator.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando se encuentra un nodo Ejecutar en el documento.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        if (run.Font.Hidden)
            run.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando se encuentra un nodo Párrafo en el documento.
    /// </summary>
    public override VisitorAction VisitParagraphStart(Paragraph paragraph)
    {
        if (paragraph.ParagraphBreakFont.Hidden)
            paragraph.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando se encuentra un FormField en el documento.
    /// </summary>
    public override VisitorAction VisitFormField(FormField formField)
    {
        if (formField.Font.Hidden)
            formField.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando se encuentra un GroupShape en el documento.
    /// </summary>
    public override VisitorAction VisitGroupShapeStart(GroupShape groupShape)
    {
        if (groupShape.Font.Hidden)
            groupShape.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando se encuentra una forma en el documento.
    /// </summary>
    public override VisitorAction VisitShapeStart(Shape shape)
    {
        if (shape.Font.Hidden)
            shape.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando se encuentra un comentario en el documento.
    /// </summary>
    public override VisitorAction VisitCommentStart(Comment comment)
    {
        if (comment.Font.Hidden)
            comment.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando se encuentra una nota al pie en el documento.
    /// </summary>
    public override VisitorAction VisitFootnoteStart(Footnote footnote)
    {
        if (footnote.Font.Hidden)
            footnote.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando se encuentra un carácter especial en el documento.
    /// </summary>
    public override VisitorAction VisitSpecialChar(SpecialChar specialChar)
    {
        if (specialChar.Font.Hidden)
            specialChar.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando finaliza la visita a un nodo de tabla en el documento.
    /// </summary>
    public override VisitorAction VisitTableEnd(Table table)
    {
        // El contenido dentro de las celdas de la tabla puede tener la marca de contenido oculto, pero las tablas mismas no.
        // Si esta tabla no tuviera nada más que contenido oculto, este visitante lo habría eliminado todo.
        // y no quedarán nodos secundarios.
        // Por lo tanto, también podemos tratar la tabla como contenido oculto y eliminarla.
        // Las tablas que están vacías pero que no tienen contenido oculto tendrán celdas con párrafos vacíos en su interior.
        // que este visitante no eliminará.
        if (!table.HasChildNodes)
            table.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando finaliza la visita a un nodo celular en el documento.
    /// </summary>
    public override VisitorAction VisitCellEnd(Cell cell)
    {
        if (!cell.HasChildNodes && cell.ParentNode != null)
            cell.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Se llama cuando finaliza la visita a un nodo de fila en el documento.
    /// </summary>
    public override VisitorAction VisitRowEnd(Row row)
    {
        if (!row.HasChildNodes && row.ParentNode != null)
            row.Remove();

        return VisitorAction.Continue;
    }
}

Ver también