This demo uses the DevExpress Word Processing Document API to process revisions (Tracked Changes). You can process the sample file or supply your own document. To do the latter, select Upload a File in the file selection drop-down menu.
Specify the revision action and author in the panel below. Use the Process Revisions and Save as... dropdown button to select the output format, apply changes, and download the result.
Select a Document
TrackChanges_template.docx
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
Stream ProcessTrackChangesDocument(Stream inputStream, bool disableTrackChanges,
string authorFilter, bool acceptAll, bool rejectAll, DocumentFormat outputFormat) {
using var wordProcessor = new RichEditDocumentServer();
// Load document
wordProcessor.LoadDocument(inputStream);
var document = wordProcessor.Document;
if (acceptAll)
AcceptRevisions(document, authorFilter);
else if (rejectAll)
RejectRevisions(document, authorFilter);
document.TrackChanges.Enabled = !disableTrackChanges;
var outputStream = new MemoryStream();
wordProcessor.SaveDocument(outputStream, outputFormat);
outputStream.Position = 0;
return outputStream;
}
void AcceptRevisions(Document document, string authorFilter) {
if (authorFilter == null)
document.Revisions.AcceptAll();
else
document.Revisions.AcceptAll(revision => revision.Author.Contains(authorFilter, StringComparison.OrdinalIgnoreCase));
}
void RejectRevisions(Document document, string authorFilter) {
if (authorFilter == null)
document.Revisions.RejectAll();
else
document.Revisions.RejectAll(revision => revision.Author.Contains(authorFilter, StringComparison.OrdinalIgnoreCase));
}