SpecialChar

SpecialChar class

Базовый класс для специальных символов в документе.

Чтобы узнать больше, посетитеОбъектная модель документа Aspose.Words (DOM) статья документации.

public class SpecialChar : Inline

Характеристики

ИмяОписание
CustomNodeId { get; set; }Указывает пользовательский идентификатор узла.
virtual Document { get; }Получает документ, которому принадлежит этот узел.
Font { get; }Предоставляет доступ к форматированию шрифта этого объекта.
virtual IsComposite { get; }Возвращаетистинный если этот узел может содержать другие узлы.
IsDeleteRevision { get; }Возвращает true, если этот объект был удален в Microsoft Word при включенном отслеживании изменений.
IsFormatRevision { get; }Возвращает true, если форматирование объекта было изменено в Microsoft Word при включенном отслеживании изменений.
IsInsertRevision { get; }Возвращает true, если этот объект был вставлен в Microsoft Word при включенном отслеживании изменений.
IsMoveFromRevision { get; }Возвращаетистинный если этот объект был перемещен (удален) в Microsoft Word при включенном отслеживании изменений.
IsMoveToRevision { get; }Возвращаетистинный если этот объект был перемещен (вставлен) в Microsoft Word при включенном отслеживании изменений.
NextSibling { get; }Получает узел, следующий сразу за этим узлом.
override NodeType { get; }ВозвращаетSpecialChar .
ParentNode { get; }Получает непосредственного родителя этого узла.
ParentParagraph { get; }Получает родительский элементParagraph этого узла.
PreviousSibling { get; }Получает узел, непосредственно предшествующий этому узлу.
Range { get; }ВозвращаетRange объект, представляющий часть документа, содержащуюся в этом узле.

Методы

ИмяОписание
override Accept(DocumentVisitor)Принимает посетителя.
Clone(bool)Создает дубликат узла.
GetAncestor(NodeType)Получает первого предка указанногоNodeType .
GetAncestor(Type)Получает первого предка указанного типа объекта.
override GetText()Получает специальный символ, который представляет этот узел.
NextPreOrder(Node)Получает следующий узел в соответствии с алгоритмом обхода дерева предварительного заказа.
PreviousPreOrder(Node)Получает предыдущий узел в соответствии с алгоритмом обхода дерева предварительного заказа.
Remove()Удаляет себя от родителя.
ToString(SaveFormat)Экспортирует содержимое узла в строку указанного формата.
ToString(SaveOptions)Экспортирует содержимое узла в строку, используя указанные параметры сохранения.

Примечания

Документ Microsoft Word может включать ряд специальных символов , которые обозначают поля, поля формы, фигуры, объекты OLE, сноски и т. д. Список специальных символов list см.ControlChar.

SpecialCharявляется встроенным узлом и может быть только дочерним элементомParagraph.

SpecialChar char используется в качестве базового класса для более конкретных классов , которые представляют специальные символы, для которых Aspose.Words предоставляет программный доступ. SpecialChar Класс также используется для представления специального символа, для которого Aspose.Words не предоставляет подробного программного доступа.

Примеры

Показывает, как использовать реализацию DocumentVisitor для удаления всего скрытого содержимого из документа.

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

    // Ниже приведены три типа полей, которые могут принять посетитель документа,
    // что позволит ему посетить принимающий узел, а затем пройти его дочерние узлы в глубину.
    // 1 - Узел абзаца:
    Paragraph para = (Paragraph)doc.GetChild(NodeType.Paragraph, 4, true);
    para.Accept(hiddenContentRemover);

    // 2 - Узел таблицы:
    Table table = doc.FirstSection.Body.Tables[0];
    table.Accept(hiddenContentRemover);

    // 3 - Узел документа:
    doc.Accept(hiddenContentRemover);

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

/// <summary>
/// Удаляет все посещенные узлы, помеченные как «скрытый контент».
/// </summary>
public class RemoveHiddenContentVisitor : DocumentVisitor
{
    /// <summary>
    /// Вызывается, когда в документе встречается узел FieldStart.
    /// </summary>
    public override VisitorAction VisitFieldStart(FieldStart fieldStart)
    {
        if (fieldStart.Font.Hidden)
            fieldStart.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе встречается узел FieldEnd.
    /// </summary>
    public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
    {
        if (fieldEnd.Font.Hidden)
            fieldEnd.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе встречается узел FieldSeparator.
    /// </summary>
    public override VisitorAction VisitFieldSeparator(FieldSeparator fieldSeparator)
    {
        if (fieldSeparator.Font.Hidden)
            fieldSeparator.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе встречается узел Run.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        if (run.Font.Hidden)
            run.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе встречается узел «Абзац».
    /// </summary>
    public override VisitorAction VisitParagraphStart(Paragraph paragraph)
    {
        if (paragraph.ParagraphBreakFont.Hidden)
            paragraph.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе встречается FormField.
    /// </summary>
    public override VisitorAction VisitFormField(FormField formField)
    {
        if (formField.Font.Hidden)
            formField.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе встречается GroupShape.
    /// </summary>
    public override VisitorAction VisitGroupShapeStart(GroupShape groupShape)
    {
        if (groupShape.Font.Hidden)
            groupShape.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе встречается форма.
    /// </summary>
    public override VisitorAction VisitShapeStart(Shape shape)
    {
        if (shape.Font.Hidden)
            shape.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе встречается комментарий.
    /// </summary>
    public override VisitorAction VisitCommentStart(Comment comment)
    {
        if (comment.Font.Hidden)
            comment.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе встречается сноска.
    /// </summary>
    public override VisitorAction VisitFootnoteStart(Footnote footnote)
    {
        if (footnote.Font.Hidden)
            footnote.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе встречается специальный символ.
    /// </summary>
    public override VisitorAction VisitSpecialChar(SpecialChar specialChar)
    {
        if (specialChar.Font.Hidden)
            specialChar.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе завершается посещение узла Таблицы.
    /// </summary>
    public override VisitorAction VisitTableEnd(Table table)
    {
        // Содержимое внутри ячеек таблицы может иметь флаг скрытого содержимого, но сами таблицы — нет.
        // Если бы в этой таблице не было ничего, кроме скрытого содержимого, этот посетитель удалил бы все это,
        // и дочерних узлов не останется.
        // Таким образом, мы также можем рассматривать саму таблицу как скрытое содержимое и удалить ее.
        // Таблицы, которые пусты, но не имеют скрытого содержимого, будут иметь ячейки с пустыми абзацами внутри,
        // который этот посетитель не удалит.
        if (!table.HasChildNodes)
            table.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается при завершении посещения узла Cell в документе.
    /// </summary>
    public override VisitorAction VisitCellEnd(Cell cell)
    {
        if (!cell.HasChildNodes && cell.ParentNode != null)
            cell.Remove();

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Вызывается, когда в документе заканчивается посещение узла Row.
    /// </summary>
    public override VisitorAction VisitRowEnd(Row row)
    {
        if (!row.HasChildNodes && row.ParentNode != null)
            row.Remove();

        return VisitorAction.Continue;
    }
}

Смотрите также