Aspose::Words::Fields::FieldSeparator class
Contents
[
Hide
]FieldSeparator class
Represents a Word field separator that separates the field code from the field result. To learn more, visit the Working with Fields documentation article.
class FieldSeparator : public Aspose::Words::Fields::FieldChar
Methods
Method | Description |
---|---|
Accept(System::SharedPtr<Aspose::Words::DocumentVisitor>) override | Accepts a visitor. |
Clone(bool) | Creates a duplicate of the node. |
get_CustomNodeId() const | Specifies custom node identifier. |
virtual get_Document() const | Gets the document to which this node belongs. |
get_FieldType() const | Returns the type of the field. |
get_Font() | Provides access to the font formatting of this object. |
virtual get_IsComposite() | Returns true if this node can contain other nodes. |
get_IsDeleteRevision() | Returns true if this object was deleted in Microsoft Word while change tracking was enabled. |
get_IsDirty() const | Gets or sets whether the current result of the field is no longer correct (stale) due to other modifications made to the document. |
get_IsFormatRevision() | Returns true if formatting of the object was changed in Microsoft Word while change tracking was enabled. |
get_IsInsertRevision() | Returns true if this object was inserted in Microsoft Word while change tracking was enabled. |
get_IsLocked() const | Gets or sets whether the parent field is locked (should not recalculate its result). |
get_IsMoveFromRevision() | Returns true if this object was moved (deleted) in Microsoft Word while change tracking was enabled. |
get_IsMoveToRevision() | Returns true if this object was moved (inserted) in Microsoft Word while change tracking was enabled. |
get_NextNode() const | |
get_NextSibling() | Gets the node immediately following this node. |
get_NodeType() const override | Returns FieldSeparator. |
get_ParentNode() | Gets the immediate parent of this node. |
get_ParentParagraph() | Retrieves the parent Paragraph of this node. |
get_PreviousSibling() | Gets the node immediately preceding this node. |
get_PrevNode() const | |
get_Range() | Returns a Range object that represents the portion of a document that is contained in this node. |
GetAncestor(Aspose::Words::NodeType) | Gets the first ancestor of the specified NodeType. |
GetAncestorOf() | |
GetField() | Returns a field for the field char. |
GetText() override | Gets the special character that this node represents. |
GetType() const override | |
Is(const System::TypeInfo&) const override | |
IsAncestorNode(const System::SharedPtr<Aspose::Words::Node>&) | |
NextPreOrder(const System::SharedPtr<Aspose::Words::Node>&) | Gets next node according to the pre-order tree traversal algorithm. |
static NodeTypeToString(Aspose::Words::NodeType) | A utility method that converts a node type enum value into a user friendly string. |
PreviousPreOrder(const System::SharedPtr<Aspose::Words::Node>&) | Gets the previous node according to the pre-order tree traversal algorithm. |
Remove() | Removes itself from the parent. |
set_CustomNodeId(int32_t) | Setter for Aspose::Words::Node::get_CustomNodeId. |
set_IsDirty(bool) | Setter for Aspose::Words::Fields::FieldChar::get_IsDirty. |
set_IsLocked(bool) | Setter for Aspose::Words::Fields::FieldChar::get_IsLocked. |
set_NextNode(const System::SharedPtr<Aspose::Words::Node>&) | |
set_PrevNode(const System::SharedPtr<Aspose::Words::Node>&) | |
SetParent(const System::SharedPtr<Aspose::Words::Node>&) | |
ToString(Aspose::Words::SaveFormat) | Exports the content of the node into a string in the specified format. |
ToString(const System::SharedPtr<Aspose::Words::Saving::SaveOptions>&) | Exports the content of the node into a string using the specified save options. |
static Type() |
Remarks
FieldSeparator is an inline-level node and represented by the FieldSeparatorChar control character in the document.
FieldSeparator can only be a child of Paragraph.
A complete field in a Microsoft Word document is a complex structure consisting of a field start character, field code, field separator character, field result and field end character. Some fields only have field start, field code and field end.
To easily insert a new field into a document, use the InsertField() method.
Examples
Shows how to work with a collection of fields.
void FieldCollection_()
{
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
builder->InsertField(u" DATE \\@ \"dddd, d MMMM yyyy\" ");
builder->InsertField(u" TIME ");
builder->InsertField(u" REVNUM ");
builder->InsertField(u" AUTHOR \"John Doe\" ");
builder->InsertField(u" SUBJECT \"My Subject\" ");
builder->InsertField(u" QUOTE \"Hello world!\" ");
doc->UpdateFields();
SharedPtr<FieldCollection> fields = doc->get_Range()->get_Fields();
ASSERT_EQ(6, fields->get_Count());
// Iterate over the field collection, and print contents and type
// of every field using a custom visitor implementation.
auto fieldVisitor = MakeObject<ExField::FieldVisitor>();
{
SharedPtr<System::Collections::Generic::IEnumerator<SharedPtr<Field>>> fieldEnumerator = fields->GetEnumerator();
while (fieldEnumerator->MoveNext())
{
if (fieldEnumerator->get_Current() != nullptr)
{
fieldEnumerator->get_Current()->get_Start()->Accept(fieldVisitor);
if (fieldEnumerator->get_Current()->get_Separator() != nullptr)
{
fieldEnumerator->get_Current()->get_Separator()->Accept(fieldVisitor);
}
fieldEnumerator->get_Current()->get_End()->Accept(fieldVisitor);
}
else
{
std::cout << "There are no fields in the document." << std::endl;
}
}
}
std::cout << fieldVisitor->GetText() << std::endl;
}
class FieldVisitor : public DocumentVisitor
{
public:
FieldVisitor()
{
mBuilder = MakeObject<System::Text::StringBuilder>();
}
String GetText()
{
return mBuilder->ToString();
}
VisitorAction VisitFieldStart(SharedPtr<FieldStart> fieldStart) override
{
mBuilder->AppendLine(String(u"Found field: ") + System::ObjectExt::ToString(fieldStart->get_FieldType()));
mBuilder->AppendLine(String(u"\tField code: ") + fieldStart->GetField()->GetFieldCode());
mBuilder->AppendLine(String(u"\tDisplayed as: ") + fieldStart->GetField()->get_Result());
return VisitorAction::Continue;
}
VisitorAction VisitFieldSeparator(SharedPtr<FieldSeparator> fieldSeparator) override
{
mBuilder->AppendLine(String(u"\tFound separator: ") + fieldSeparator->GetText());
return VisitorAction::Continue;
}
VisitorAction VisitFieldEnd(SharedPtr<FieldEnd> fieldEnd) override
{
mBuilder->AppendLine(String(u"End of field: ") + System::ObjectExt::ToString(fieldEnd->get_FieldType()));
return VisitorAction::Continue;
}
private:
SharedPtr<System::Text::StringBuilder> mBuilder;
};
See Also
- Class FieldChar
- Namespace Aspose::Words::Fields
- Library Aspose.Words for C++