Aspose::Words::Comparing::CompareOptions class

CompareOptions class

Allows to choose additional options for document comparison operation. To learn more, visit the Compare Documents documentation article.

class CompareOptions : public System::Object

Methods

MethodDescription
CompareOptions()
get_AdvancedOptions() constSpecifies advanced compare options that might help to produce more precise comparison output.
get_CompareMoves() constSpecifies whether to compare differences between the two documents.
get_Granularity() constSpecifies whether changes are tracked by character or by word.
get_IgnoreCaseChanges() constTrue indicates that documents comparison is case insensitive.
get_IgnoreComments() constSpecifies whether to compare differences in comments.
get_IgnoreDmlUniqueId()Specifies whether to ignore difference in DrawingML unique Id.
get_IgnoreFields() constSpecifies whether to compare differences in fields.
get_IgnoreFootnotes() constSpecifies whether to compare differences in footnotes and endnotes.
get_IgnoreFormatting() constTrue indicates that formatting is ignored.
get_IgnoreHeadersAndFooters() constTrue indicates that headers and footers content is ignored.
get_IgnoreTables() constSpecifies whether to compare the differences in data contained in tables.
get_IgnoreTextboxes() constSpecifies whether to compare differences in the data contained within text boxes.
get_Target() constSpecifies which document shall be used as a target during comparison.
GetType() const override
Is(const System::TypeInfo&) const override
set_CompareMoves(bool)Setter for Aspose::Words::Comparing::CompareOptions::get_CompareMoves.
set_Granularity(Aspose::Words::Comparing::Granularity)Setter for Aspose::Words::Comparing::CompareOptions::get_Granularity.
set_IgnoreCaseChanges(bool)Setter for Aspose::Words::Comparing::CompareOptions::get_IgnoreCaseChanges.
set_IgnoreComments(bool)Setter for Aspose::Words::Comparing::CompareOptions::get_IgnoreComments.
set_IgnoreDmlUniqueId(bool)Setter for Aspose::Words::Comparing::CompareOptions::get_IgnoreDmlUniqueId.
set_IgnoreFields(bool)Setter for Aspose::Words::Comparing::CompareOptions::get_IgnoreFields.
set_IgnoreFootnotes(bool)Setter for Aspose::Words::Comparing::CompareOptions::get_IgnoreFootnotes.
set_IgnoreFormatting(bool)Setter for Aspose::Words::Comparing::CompareOptions::get_IgnoreFormatting.
set_IgnoreHeadersAndFooters(bool)Setter for Aspose::Words::Comparing::CompareOptions::get_IgnoreHeadersAndFooters.
set_IgnoreTables(bool)Setter for Aspose::Words::Comparing::CompareOptions::get_IgnoreTables.
set_IgnoreTextboxes(bool)Setter for Aspose::Words::Comparing::CompareOptions::get_IgnoreTextboxes.
set_Target(Aspose::Words::Comparing::ComparisonTargetType)Setter for Aspose::Words::Comparing::CompareOptions::get_Target.
static Type()

Examples

Shows how to filter specific types of document elements when making a comparison.

// Create the original document and populate it with various kinds of elements.
auto docOriginal = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(docOriginal);

// Paragraph text referenced with an endnote:
builder->Writeln(u"Hello world! This is the first paragraph.");
builder->InsertFootnote(Aspose::Words::Notes::FootnoteType::Endnote, u"Original endnote text.");

// Table:
builder->StartTable();
builder->InsertCell();
builder->Write(u"Original cell 1 text");
builder->InsertCell();
builder->Write(u"Original cell 2 text");
builder->EndTable();

// Textbox:
System::SharedPtr<Aspose::Words::Drawing::Shape> textBox = builder->InsertShape(Aspose::Words::Drawing::ShapeType::TextBox, 150, 20);
builder->MoveTo(textBox->get_FirstParagraph());
builder->Write(u"Original textbox contents");

// DATE field:
builder->MoveTo(docOriginal->get_FirstSection()->get_Body()->AppendParagraph(u""));
builder->InsertField(u" DATE ");

// Comment:
auto newComment = System::MakeObject<Aspose::Words::Comment>(docOriginal, u"John Doe", u"J.D.", System::DateTime::get_Now());
newComment->SetText(u"Original comment.");
builder->get_CurrentParagraph()->AppendChild<System::SharedPtr<Aspose::Words::Comment>>(newComment);

// Header:
builder->MoveToHeaderFooter(Aspose::Words::HeaderFooterType::HeaderPrimary);
builder->Writeln(u"Original header contents.");

// Create a clone of our document and perform a quick edit on each of the cloned document's elements.
auto docEdited = System::ExplicitCast<Aspose::Words::Document>(System::ExplicitCast<Aspose::Words::Node>(docOriginal)->Clone(true));
System::SharedPtr<Aspose::Words::Paragraph> firstParagraph = docEdited->get_FirstSection()->get_Body()->get_FirstParagraph();

firstParagraph->get_Runs()->idx_get(0)->set_Text(u"hello world! this is the first paragraph, after editing.");
firstParagraph->get_ParagraphFormat()->set_Style(docEdited->get_Styles()->idx_get(Aspose::Words::StyleIdentifier::Heading1));
(System::ExplicitCast<Aspose::Words::Notes::Footnote>(docEdited->GetChild(Aspose::Words::NodeType::Footnote, 0, true)))->get_FirstParagraph()->get_Runs()->idx_get(1)->set_Text(u"Edited endnote text.");
(System::ExplicitCast<Aspose::Words::Tables::Table>(docEdited->GetChild(Aspose::Words::NodeType::Table, 0, true)))->get_FirstRow()->get_Cells()->idx_get(1)->get_FirstParagraph()->get_Runs()->idx_get(0)->set_Text(u"Edited Cell 2 contents");
(System::ExplicitCast<Aspose::Words::Drawing::Shape>(docEdited->GetChild(Aspose::Words::NodeType::Shape, 0, true)))->get_FirstParagraph()->get_Runs()->idx_get(0)->set_Text(u"Edited textbox contents");
(System::ExplicitCast<Aspose::Words::Fields::FieldDate>(docEdited->get_Range()->get_Fields()->idx_get(0)))->set_UseLunarCalendar(true);
(System::ExplicitCast<Aspose::Words::Comment>(docEdited->GetChild(Aspose::Words::NodeType::Comment, 0, true)))->get_FirstParagraph()->get_Runs()->idx_get(0)->set_Text(u"Edited comment.");
docEdited->get_FirstSection()->get_HeadersFooters()->idx_get(Aspose::Words::HeaderFooterType::HeaderPrimary)->get_FirstParagraph()->get_Runs()->idx_get(0)->set_Text(u"Edited header contents.");

// Comparing documents creates a revision for every edit in the edited document.
// A CompareOptions object has a series of flags that can suppress revisions
// on each respective type of element, effectively ignoring their change.
auto compareOptions = System::MakeObject<Aspose::Words::Comparing::CompareOptions>();
compareOptions->set_CompareMoves(false);
compareOptions->set_IgnoreFormatting(false);
compareOptions->set_IgnoreCaseChanges(false);
compareOptions->set_IgnoreComments(false);
compareOptions->set_IgnoreTables(false);
compareOptions->set_IgnoreFields(false);
compareOptions->set_IgnoreFootnotes(false);
compareOptions->set_IgnoreTextboxes(false);
compareOptions->set_IgnoreHeadersAndFooters(false);
compareOptions->set_Target(Aspose::Words::Comparing::ComparisonTargetType::New);

docOriginal->Compare(docEdited, u"John Doe", System::DateTime::get_Now(), compareOptions);
docOriginal->Save(get_ArtifactsDir() + u"Revision.CompareOptions.docx");

See Also