Class DocumentVisitor
De naam: Aspose.Note Verzameling: Aspose.Note.dll (25.4.0)
De abstracte klasse voor het itereren door de ondergrondse boom met de wortel aan de aangegeven node.
public abstract class DocumentVisitor
Inheritance
Geëerbiede leden
object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Examples
Toon hoe u de inhoud van een document kunt bereiken door een bezoeker te gebruiken.
public static void Run()
{
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
// Open the document we want to convert.
Document doc = new Document(dataDir + "Aspose.one");
// Create an object that inherits from the DocumentVisitor class.
MyOneNoteToTxtWriter myConverter = new MyOneNoteToTxtWriter();
// This is the well known Visitor pattern. Get the model to accept a visitor.
// The model will iterate through itself by calling the corresponding methods
// on the visitor object (this is called visiting).
//
// Note that every node in the object model has the Accept method so the visiting
// can be executed not only for the whole document, but for any node in the document.
doc.Accept(myConverter);
// Once the visiting is complete, we can retrieve the result of the operation,
// that in this example, has accumulated in the visitor.
Console.WriteLine(myConverter.GetText());
Console.WriteLine(myConverter.NodeCount);
}
/// <summary>
/// Simple implementation of saving a document in the plain text format. Implemented as a Visitor.
/// </summary>
public class MyOneNoteToTxtWriter : DocumentVisitor
{
public MyOneNoteToTxtWriter()
{
nodecount = 0;
mIsSkipText = false;
mBuilder = new StringBuilder();
}
/// <summary>
/// Gets the plain text of the document that was accumulated by the visitor.
/// </summary>
public string GetText()
{
return mBuilder.ToString();
}
/// <summary>
/// Adds text to the current output. Honors the enabled/disabled output flag.
/// </summary>
private void AppendText(string text)
{
if (!mIsSkipText)
{
mBuilder.AppendLine(text);
}
}
/// <summary>
/// Called when a RichText node is encountered in the document.
/// </summary>
public override void VisitRichTextStart(RichText run)
{
++nodecount;
AppendText(run.Text);
}
/// <summary>
/// Called when a Document node is encountered in the document.
/// </summary>
public override void VisitDocumentStart(Document document)
{
++nodecount;
}
/// <summary>
/// Called when a Page node is encountered in the document.
/// </summary>
public override void VisitPageStart(Page page)
{
++nodecount;
this.AppendText($"*** Page '{page.Title?.TitleText?.Text ?? "(no title)"}' ***");
}
/// <summary>
/// Called when processing of a Page node is finished.
/// </summary>
public override void VisitPageEnd(Page page)
{
this.AppendText(string.Empty);
}
/// <summary>
/// Called when a Title node is encountered in the document.
/// </summary>
public override void VisitTitleStart(Title title)
{
++nodecount;
}
/// <summary>
/// Called when a Image node is encountered in the document.
/// </summary>
public override void VisitImageStart(Image image)
{
++nodecount;
}
/// <summary>
/// Called when a OutlineGroup node is encountered in the document.
/// </summary>
public override void VisitOutlineGroupStart(OutlineGroup outlineGroup)
{
++nodecount;
}
/// <summary>
/// Called when a Outline node is encountered in the document.
/// </summary>
public override void VisitOutlineStart(Outline outline)
{
++nodecount;
}
/// <summary>
/// Called when a OutlineElement node is encountered in the document.
/// </summary>
public override void VisitOutlineElementStart(OutlineElement outlineElement)
{
++nodecount;
}
/// <summary>
/// Gets the total count of nodes by the Visitor
/// </summary>
public Int32 NodeCount
{
get { return this.nodecount; }
}
private readonly StringBuilder mBuilder;
private bool mIsSkipText;
private Int32 nodecount;
}
Constructors
DocumentVisitor()
protected DocumentVisitor()
Methods
VisitAttachedFileEnd(AttachedFile)
Eind om de Aspose.Note.AttachedFile knop te bezoeken.
public virtual void VisitAttachedFileEnd(AttachedFile attachedFile)
Parameters
attachedFile
AttachedFile
De Aspose.Note.AttachedFile node.
VisitAttachedFileStart(AttachedFile)
Begin met het bezoeken van de Aspose.Note.AttachedFile knop.
public virtual void VisitAttachedFileStart(AttachedFile attachedFile)
Parameters
attachedFile
AttachedFile
De Aspose.Note.AttachedFile node.
VisitDocumentEnd(Document)
Uiteindelijk kunt u de Aspose.Note.Document nod bezoeken.
public virtual void VisitDocumentEnd(Document document)
Parameters
document
Document
De Aspose.Note.Document node.
VisitDocumentStart(Document)
Begin met het bezoeken van de Aspose.Note.Document node.
public virtual void VisitDocumentStart(Document document)
Parameters
document
Document
De Aspose.Note.Document node.
VisitImageEnd(Image)
Eind om de Aspose.Note.Image knop te bezoeken.
public virtual void VisitImageEnd(Image image)
Parameters
image
Image
De Aspose.Note.Image node.
VisitImageStart(Image)
Begin met het bezoeken van de Aspose.Note.Image node.
public virtual void VisitImageStart(Image image)
Parameters
image
Image
De Aspose.Note.Image node.
VisitInkDrawingEnd(InkDrawing)
Eind om de Aspose.Note.InkDrawing knop te bezoeken.
public virtual void VisitInkDrawingEnd(InkDrawing inkDrawing)
Parameters
inkDrawing
InkDrawing
De Aspose.Note.InkDrawing knop.
VisitInkDrawingStart(InkDrawing)
Begin met het bezoeken van de Aspose.Note.InkDrawing knop.
public virtual void VisitInkDrawingStart(InkDrawing inkDrawing)
Parameters
inkDrawing
InkDrawing
De Aspose.Note.InkDrawing knop.
VisitInkParagraphEnd(InkParagraph)
Eind om de Aspose.Note.InkParagraph knop te bezoeken.
public virtual void VisitInkParagraphEnd(InkParagraph inkParagraph)
Parameters
inkParagraph
InkParagraph
De Aspose.Note.InkParagraph node.
VisitInkParagraphStart(InkParagraph)
Begin met het bezoeken van de Aspose.Note.InkParagraph knop.
public virtual void VisitInkParagraphStart(InkParagraph inkParagraph)
Parameters
inkParagraph
InkParagraph
De Aspose.Note.InkParagraph node.
VisitInkWordEnd(InkWord)
Uiteindelijk kunt u de Aspose.Note.InkWord node bezoeken.
public virtual void VisitInkWordEnd(InkWord inkWord)
Parameters
inkWord
InkWord
De Aspose.Note.InkWord node.
VisitInkWordStart(InkWord)
Begin met het bezoeken van de Aspose.Note.InkWord node.
public virtual void VisitInkWordStart(InkWord inkWord)
Parameters
inkWord
InkWord
De Aspose.Note.InkWord node.
VisitLoopEnd(Loop)
Uiteind de Aspose.Note.Loop knop te bezoeken.
public virtual void VisitLoopEnd(Loop loop)
Parameters
loop
Loop
De Aspose.Note.Loop node.
VisitLoopStart(Loop)
Begin met het bezoeken van de Aspose.Note.Loop knop.
public virtual void VisitLoopStart(Loop loop)
Parameters
loop
Loop
De Aspose.Note.Loop node.
VisitOutlineElementEnd(OutlineElement)
Uiteindelijk kunt u de Aspose.Note.OutlineElement node bezoeken.
public virtual void VisitOutlineElementEnd(OutlineElement outlineElement)
Parameters
outlineElement
OutlineElement
De Aspose.Note.OutlineElement node.
VisitOutlineElementStart(OutlineElement)
Begin met het bezoeken van de Aspose.Note.OutlineElement node.
public virtual void VisitOutlineElementStart(OutlineElement outlineElement)
Parameters
outlineElement
OutlineElement
De Aspose.Note.OutlineElement node.
VisitOutlineEnd(Outline)
Uiteindelijk kunt u de Aspose.Note.Outline node bezoeken.
public virtual void VisitOutlineEnd(Outline outline)
Parameters
outline
Outline
De Aspose.Note.Outline node.
VisitOutlineGroupEnd(OutlineGroup)
Uiteindelijk kunt u de Aspose.Note.OutlineGroup node bezoeken.
public virtual void VisitOutlineGroupEnd(OutlineGroup outlineGroup)
Parameters
outlineGroup
OutlineGroup
De Aspose.Note.OutlineGroup node.
VisitOutlineGroupStart(OutlineGroup)
Begin met het bezoeken van de Aspose.Note.OutlineGroup node.
public virtual void VisitOutlineGroupStart(OutlineGroup outlineGroup)
Parameters
outlineGroup
OutlineGroup
De Aspose.Note.OutlineGroup node.
VisitOutlineStart(Outline)
Begin met het bezoeken van de Aspose.Note.Outline node.
public virtual void VisitOutlineStart(Outline outline)
Parameters
outline
Outline
De Aspose.Note.Outline node.
VisitPageEnd(Page)
Eind om de Aspose.Note.Page knop te bezoeken.
public virtual void VisitPageEnd(Page page)
Parameters
page
Page
De Aspose.Note.Page node.
VisitPageStart(Page)
Begin met het bezoeken van de Aspose.Note.Page node.
public virtual void VisitPageStart(Page page)
Parameters
page
Page
De Aspose.Note.Page node.
VisitRichTextEnd(RichText)
Bezoek de Aspose.Note.RichText node.
public virtual void VisitRichTextEnd(RichText richText)
Parameters
richText
RichText
De Aspose.Note.RichText node.
VisitRichTextStart(RichText)
Begin met het bezoeken van de Aspose.Note.RichText knop.
public virtual void VisitRichTextStart(RichText richText)
Parameters
richText
RichText
De Aspose.Note.RichText node.
VisitTableCellEnd(TableCell)
Uiteindelijk kunt u de Aspose.Note.TableCell node bezoeken.
public virtual void VisitTableCellEnd(TableCell tableCell)
Parameters
tableCell
TableCell
De Aspose.Note.TableCell node.
VisitTableCellStart(TableCell)
Begin met het bezoeken van de Aspose.Note.TableCell node.
public virtual void VisitTableCellStart(TableCell tableCell)
Parameters
tableCell
TableCell
De Aspose.Note.TableCell node.
VisitTableEnd(Table)
Uiteindelijk kunt u de Aspose.Note.Table node bezoeken.
public virtual void VisitTableEnd(Table table)
Parameters
table
Table
De Aspose.Note.Tabele node.
VisitTableRowEnd(TableRow)
Uiteindelijk kunt u de Aspose.Note.TableRow knop bezoeken.
public virtual void VisitTableRowEnd(TableRow tableRow)
Parameters
tableRow
TableRow
De Aspose.Note.TableRow node.
VisitTableRowStart(TableRow)
Begin met het bezoeken van de Aspose.Note.TableRow nod.
public virtual void VisitTableRowStart(TableRow tableRow)
Parameters
tableRow
TableRow
De Aspose.Note.TableRow node.
VisitTableStart(Table)
Begin met het bezoeken van de Aspose.Note.Table node.
public virtual void VisitTableStart(Table table)
Parameters
table
Table
De Aspose.Note.Tabele node.
VisitTitleEnd(Title)
Bezoek de Aspose.Note.Title node.
public virtual void VisitTitleEnd(Title title)
Parameters
title
Title
De Aspose.Note.Title node
VisitTitleStart(Title)
Begin met het bezoeken van de Aspose.Note.Title node.
public virtual void VisitTitleStart(Title title)
Parameters
title
Title
De Aspose.Note.Title node