Class AbsolutePositionTab

AbsolutePositionTab class

绝对位置制表符是一个字符,用于在显示此 WordprocessingML 内容时在 当前文本行上前进位置。

public class AbsolutePositionTab : SpecialChar

特性

姓名 描述
CustomNodeId { get; set; } 指定自定义节点标识符。
virtual Document { get; } 获取该节点所属的文档。
Font { get; } 提供对此对象的字体格式的访问。
virtual IsComposite { get; } 如果此节点可以包含其他节点,则返回 true。
IsDeleteRevision { get; } 如果在启用更改跟踪时在 Microsoft Word 中删除了此对象,则返回 true。
IsFormatRevision { get; } 如果启用更改跟踪时在 Microsoft Word 中更改了对象的格式,则返回 true。
IsInsertRevision { get; } 如果在启用更改跟踪时将此对象插入 Microsoft Word,则返回 true。
IsMoveFromRevision { get; } 返回 真的如果启用更改跟踪时此对象在 Microsoft Word 中被移动(删除)。
IsMoveToRevision { get; } 返回 真的如果启用更改跟踪时在 Microsoft Word 中移动(插入)此对象。
NextSibling { get; } 获取紧跟此节点的节点。
override NodeType { get; } 返回 NodeType.SpecialChar.
ParentNode { get; } 获取此节点的直接父节点。
ParentParagraph { get; } 检索父级Paragraph这个节点的.
PreviousSibling { get; } 获取紧接在此节点之前的节点。
Range { get; } 返回一个 范围表示此节点中包含的文档部分的对象。

方法

姓名 描述
override Accept(DocumentVisitor) 接受访客。
Clone(bool) 创建节点的副本。
GetAncestor(NodeType) 获取指定的第一个祖先NodeType.
GetAncestor(Type) 获取指定对象类型的第一个祖先。
override GetText() 获取此节点代表的特殊字符。
NextPreOrder(Node) 根据前序树遍历算法获取下一个节点。
PreviousPreOrder(Node) 根据前序树遍历算法获取上一个节点。
Remove() 从父级中移除自身。
ToString(SaveFormat) 将节点的内容导出为指定格式的字符串。
ToString(SaveOptions) 使用指定的保存选项将节点的内容导出为字符串。

例子

显示如何使用文档访问者处理绝对位置制表符。

public void DocumentToTxt()
{
    Document doc = new Document(MyDir + "Absolute position tab.docx");

    // 通过接受这个自定义文档访问者来提取我们文档的文本内容。
    DocTextExtractor myDocTextExtractor = new DocTextExtractor();
    doc.FirstSection.Body.Accept(myDocTextExtractor);

    // 绝对位置制表符,在字符串形式中没有等价物,已显式转换为制表符。
    Assert.AreEqual("Before AbsolutePositionTab\tAfter AbsolutePositionTab", myDocTextExtractor.GetText());

    // AbsolutePositionTab 本身也可以接受 DocumentVisitor。
    AbsolutePositionTab absPositionTab = (AbsolutePositionTab)doc.FirstSection.Body.FirstParagraph.GetChild(NodeType.SpecialChar, 0, true);

    myDocTextExtractor = new DocTextExtractor();
    absPositionTab.Accept(myDocTextExtractor);

    Assert.AreEqual("\t", myDocTextExtractor.GetText());
}

/// <summary>
/// 收集访问文档中所有运行的文本内容。用普通制表符替换所有绝对制表符。
/// </summary>
public class DocTextExtractor : DocumentVisitor
{
    public DocTextExtractor()
    {
        mBuilder = new StringBuilder();
    }

    /// <summary>
    /// 在文档中遇到 Run 节点时调用。
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        AppendText(run.Text);
        return VisitorAction.Continue;
    }

    /// <summary>
    /// 在文档中遇到 AbsolutePositionTab 节点时调用。
    /// </summary>
    public override VisitorAction VisitAbsolutePositionTab(AbsolutePositionTab tab)
    {
        mBuilder.Append("\t");
        return VisitorAction.Continue;
    }

    /// <summary>
    /// 将文本添加到当前输出。尊重启用/禁用的输出标志。
    /// </summary>
    private void AppendText(string text)
    {
        mBuilder.Append(text);
    }

    /// <summary>
    /// 访问者积累的文档的纯文本。
    /// </summary>
    public string GetText()
    {
        return mBuilder.ToString();
    }

    private readonly StringBuilder mBuilder;
}

也可以看看