GroupDocs.Redaction for .NET 26.7 is now available. This release adds OOXML compliance control when saving Word processing documents, expands spreadsheet format support, and fixes issues with CSV image-style redactions and plain-text save behavior.

Fixes and enhancements

  • [Enhancement] Implement support and respect OOXML compliance for Words documents. (REDACTIONNET-718)
  • [Enhancement] Implement support for ODS, OTS, XLSB, XLT, and TAB spreadsheet formats. (REDACTIONNET-802)
  • [Bug] Unnecessary image redactions for CSV files. (REDACTIONNET-805)
  • [Bug] Saving text file as XLSX. (REDACTIONNET-628)

What’s New?

This release focuses on Word save options and broader spreadsheet coverage, along with more reliable behavior for text-oriented formats.

Specify OOXML compliance when saving Word documents

When you save a Word processing document in its original format, you can now set the OOXML compliance level through SaveOptions.WordprocessingSaveOptions.OoxmlCompliance. Use values from the new WordProcessingComplianceLevel enumeration: Ecma, Transitional, or Strict.

If you do not set this property, GroupDocs.Redaction keeps the compliance level of the original document. Strict can only be downgraded to Transitional, not to Ecma. Set RasterizeToPDF to false so the document is saved as Word OOXML rather than as a rasterized PDF.

Expanded spreadsheet format support

Version 26.7 adds support for ODS, OTS, XLSB, XLT, and TAB spreadsheets, including correct format detection and saving in the original spreadsheet format. You can redact these files with the same API patterns used for other spreadsheet documents.

More reliable CSV and plain-text handling

For text-only spreadsheet formats such as CSV, draw-box (colored rectangle) text redactions are skipped because these formats do not support image-style replacements. This release also fixes a case where a plain text document could be incorrectly saved as an XLSX/ZIP package instead of remaining a text file.

Public API changes

Added

  • WordProcessingComplianceLevel enumeration with values Ecma, Transitional, and Strict
  • WordprocessingSaveOptions class with the OoxmlCompliance property
  • SaveOptions.WordprocessingSaveOptions property

Code examples

Save a Word document with OOXML compliance

using GroupDocs.Redaction.Options;
using GroupDocs.Redaction.Redactions;

using (Redactor redactor = new Redactor("sample.docx"))
{
    redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[personal]")));

    var options = new SaveOptions()
    {
        AddSuffix = true,
        RasterizeToPDF = false,
        RedactedFileSuffix = "Strict"
    };
    // If not specified, the compliance level of the original document is preserved.
    // Strict can only be downgraded to Transitional, not to Ecma.
    options.WordprocessingSaveOptions.OoxmlCompliance = WordProcessingComplianceLevel.Strict;

    redactor.Save(options);
}

Redact newly supported spreadsheet formats

using GroupDocs.Redaction.Options;
using GroupDocs.Redaction.Redactions;

using (Redactor redactor = new Redactor("sample.ods"))
{
    redactor.Apply(new ExactPhraseRedaction("Sensitive", new ReplacementOptions("[redacted]")));
    redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

How to get the update

Learn more