I need to compare two documents from Base64Encodedstring and need to present the revision results in the given json format.
Here is my code for the same
// Step 1: Decode the Base64-encoded strings to obtain the content of the documents.
byte[] base64DecodedBytes1 = Convert.FromBase64String(documentComparePostDataBindingModel.Ooxml1);
byte[] base64DecodedBytes2 = Convert.FromBase64String(documentComparePostDataBindingModel.Ooxml2);
AsposeHelper.ApplyingAsposeLicense();
// Step 2: Load the content of the documents using Aspose.Words.
Document doc1 = new(new MemoryStream(base64DecodedBytes1));
Document doc2 = new(new MemoryStream(base64DecodedBytes2));
CompareOptions options = new();
// Step 3: Compare the two documents using Aspose.Words' comparison features.
doc1.Compare(doc2, "Thiyagarajan Narayanan", DateTime.Now, options);
// Step 4: Generate the output in the proposed format.
List<DocumentCompareResponseDataBindingModel> docResponses = new();
foreach (Revision revision in doc1.Revisions)
{
// Find the paragraph containing the revision and its text content
Paragraph paragraph = FindParagraphContainingRevision(doc1, revision);
if (paragraph != null)
{
string textContent = paragraph.GetText();
// Find the start range of the text content within the whole document
int startRange = doc1.GetText().IndexOf(textContent);
int endRange = startRange + textContent.Length;
DocumentCompareResponseDataBindingModel responseItem = new DocumentCompareResponseDataBindingModel
{
// Pid = paragraph.ParagraphFormat.ListLabel.LabelValue,
Inserted = revision.RevisionType == RevisionType.Insertion,
Substituted = revision.RevisionType == RevisionType.FormatChange,
Repealed = revision.RevisionType == RevisionType.Deletion,
StartRange = startRange,
EndRange = endRange,
};
docResponses.Add(responseItem);
}
}
var jsonString = JsonConvert.SerializeObject(docResponses);
JObject jObject = JObject.Parse(jsonString);
return Task.FromResult(jObject);
The issue I am facing here is getting the paragraph Id’s. It seems no direct way to fetch the paragraph numbers. Any workaround will be helpful. Please help on this.