AbsolutePositionTabAccept Method

Accepts a visitor.

Namespace:  Aspose.Words
Assembly:  Aspose.Words (in Aspose.Words.dll) Version: 20.3
Syntax
public override bool Accept(
	DocumentVisitor visitor
)

Parameters

visitor
Type: Aspose.WordsDocumentVisitor
The visitor that will visit the node.

Return Value

Type: Boolean
False if the visitor requested the enumeration to stop.
Remarks

Calls DocumentVisitor.VisitAbsolutePositionTab.

For more info see the Visitor design pattern.

Examples
Shows how to work with AbsolutePositionTab.
public void DocumentToTxt()
{
    // This document contains two sentences separated by an absolute position tab
    Document doc = new Document(MyDir + "Absolute position tab.docx");

    // An AbsolutePositionTab is a child node of a paragraph
    // AbsolutePositionTabs get picked up when looking for nodes of the SpecialChar type
    Paragraph para = doc.FirstSection.Body.FirstParagraph;
    AbsolutePositionTab absPositionTab = (AbsolutePositionTab)para.GetChild(NodeType.SpecialChar, 0, true);

    // This implementation of the DocumentVisitor pattern converts the document to plain text
    DocToTxtWriter myDocToTxtWriter = new DocToTxtWriter();

    // We can run the DocumentVisitor over the whole first paragraph
    para.Accept(myDocToTxtWriter);

    // A tab character is placed where the AbsolutePositionTab was found
    Assert.AreEqual("Before AbsolutePositionTab\tAfter AbsolutePositionTab", myDocToTxtWriter.GetText());

    // An AbsolutePositionTab can accept a DocumentVisitor by itself too
    myDocToTxtWriter = new DocToTxtWriter();
    absPositionTab.Accept(myDocToTxtWriter);

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

/// <summary>
/// Visitor implementation that simply collects the Runs and AbsolutePositionTabs of a document as plain text. 
/// </summary>
public class DocToTxtWriter : DocumentVisitor
{
    public DocToTxtWriter()
    {
        mBuilder = new StringBuilder();
    }

    /// <summary>
    /// Called when a Run node is encountered in the document.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        AppendText(run.Text);
        // Let the visitor continue visiting other nodes.
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Called when an AbsolutePositionTab node is encountered in the document.
    /// </summary>
    public override VisitorAction VisitAbsolutePositionTab(AbsolutePositionTab tab)
    {
        // We'll treat the AbsolutePositionTab as a regular tab in this case
        mBuilder.Append("\t");
        return VisitorAction.Continue;
    }

    /// <summary>
    /// Adds text to the current output. Honors the enabled/disabled output flag.
    /// </summary>
    private void AppendText(string text)
    {
        mBuilder.Append(text);
    }

    /// <summary>
    /// Gets the plain text of the document that was accumulated by the visitor.
    /// </summary>
    public string GetText()
    {
        return mBuilder.ToString();
    }

    private readonly StringBuilder mBuilder;
}
See Also