Aspose::Words::Fields::FieldShape class
Contents
[
Hide
]FieldShape class
Implements the SHAPE field. To learn more, visit the Working with Fields documentation article.
class FieldShape : public Aspose::Words::Fields::Field
Methods
Method | Description |
---|---|
get_DisplayResult() | Gets the text that represents the displayed field result. |
get_End() const | Gets the node that represents the field end. |
get_FieldEnd() const | Gets the node that represents the field end. |
get_FieldStart() const | Gets the node that represents the start of the field. |
get_Format() | Gets a FieldFormat object that provides typed access to field’s formatting. |
get_IsDirty() | Gets whether the current result of the field is no longer correct (stale) due to other modifications made to the document. |
get_IsLocked() | Gets or sets whether the field is locked (should not recalculate its result). |
get_LocaleId() | Gets or sets the LCID of the field. |
get_Result() | Gets or sets text that is between the field separator and field end. |
get_Separator() | Gets the node that represents the field separator. Can be null. |
get_Start() const | Gets the node that represents the start of the field. |
get_Text() | Gets or sets the text to retrieve. |
virtual get_Type() const | Gets the Microsoft Word field type. |
GetFieldCode() | Returns text between field start and field separator (or field end if there is no separator). Both field code and field result of child fields are included. |
GetFieldCode(bool) | Returns text between field start and field separator (or field end if there is no separator). |
GetType() const override | |
Is(const System::TypeInfo&) const override | |
Remove() | Removes the field from the document. Returns a node right after the field. If the field’s end is the last child of its parent node, returns its parent paragraph. If the field is already removed, returns null. |
set_IsDirty(bool) | Sets whether the current result of the field is no longer correct (stale) due to other modifications made to the document. |
set_IsLocked(bool) | Setter for Aspose::Words::Fields::Field::get_IsLocked. |
set_LocaleId(int32_t) | Setter for Aspose::Words::Fields::Field::get_LocaleId. |
set_Result(const System::String&) | Setter for Aspose::Words::Fields::Field::get_Result. |
set_Text(const System::String&) | Setter for Aspose::Words::Fields::FieldShape::get_Text. |
static Type() | |
Unlink() | Performs the field unlink. |
Update() | Performs the field update. Throws if the field is being updated already. |
Update(bool) | Performs a field update. Throws if the field is being updated already. |
Examples
Shows how to create right-to-left language-compatible lists with BIDIOUTLINE fields.
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
// The BIDIOUTLINE field numbers paragraphs like the AUTONUM/LISTNUM fields,
// but is only visible when a right-to-left editing language is enabled, such as Hebrew or Arabic.
// The following field will display ".1", the RTL equivalent of list number "1.".
auto field = System::ExplicitCast<FieldBidiOutline>(builder->InsertField(FieldType::FieldBidiOutline, true));
builder->Writeln(u"שלום");
ASSERT_EQ(u" BIDIOUTLINE ", field->GetFieldCode());
// Add two more BIDIOUTLINE fields, which will display ".2" and ".3".
builder->InsertField(FieldType::FieldBidiOutline, true);
builder->Writeln(u"שלום");
builder->InsertField(FieldType::FieldBidiOutline, true);
builder->Writeln(u"שלום");
// Set the horizontal text alignment for every paragraph in the document to RTL.
for (const auto& para : System::IterateOver<Paragraph>(doc->GetChildNodes(NodeType::Paragraph, true)))
{
para->get_ParagraphFormat()->set_Bidi(true);
}
// If we enable a right-to-left editing language in Microsoft Word, our fields will display numbers.
// Otherwise, they will display "###".
doc->Save(ArtifactsDir + u"Field.BIDIOUTLINE.docx");
Shows how some older Microsoft Word fields such as SHAPE and EMBED are handled during loading.
// Open a document that was created in Microsoft Word 2003.
auto doc = MakeObject<Document>(MyDir + u"Legacy fields.doc");
// If we open the Word document and press Alt+F9, we will see a SHAPE and an EMBED field.
// A SHAPE field is the anchor/canvas for an AutoShape object with the "In line with text" wrapping style enabled.
// An EMBED field has the same function, but for an embedded object,
// such as a spreadsheet from an external Excel document.
// However, these fields will not appear in the document's Fields collection.
ASSERT_EQ(0, doc->get_Range()->get_Fields()->get_Count());
// These fields are supported only by old versions of Microsoft Word.
// The document loading process will convert these fields into Shape objects,
// which we can access in the document's node collection.
SharedPtr<NodeCollection> shapes = doc->GetChildNodes(NodeType::Shape, true);
ASSERT_EQ(3, shapes->get_Count());
// The first Shape node corresponds to the SHAPE field in the input document,
// which is the inline canvas for the AutoShape.
auto shape = System::ExplicitCast<Shape>(shapes->idx_get(0));
ASSERT_EQ(ShapeType::Image, shape->get_ShapeType());
// The second Shape node is the AutoShape itself.
shape = System::ExplicitCast<Shape>(shapes->idx_get(1));
ASSERT_EQ(ShapeType::Can, shape->get_ShapeType());
// The third Shape is what was the EMBED field that contained the external spreadsheet.
shape = System::ExplicitCast<Shape>(shapes->idx_get(2));
ASSERT_EQ(ShapeType::OleObject, shape->get_ShapeType());
See Also
- Class Field
- Namespace Aspose::Words::Fields
- Library Aspose.Words for C++