Metadata redactions

With GroupDocs.Redaction API you can apply metadata redactions for documents of different formats like PDF, DOC, DOCX, PPT, PPTX, XLS, XLSX and others. See full list at supported document formats article.

GroupDocs.Redactions provides a flexible API that allows to replace or remove metadata using filters or search by regular expression.

Filter metadata

Base functionality for all redactions, derived from MetadataRedaction base class is metadata filtering and it is mandatory for metadata redactions. It uses flagged enumeration MetadataFilters, containing items for most frequent metadata entries. You can set the filter to All, or any combination of metadata. For instance, the example below sets filter to Author, Manager and NameOfApplication - for textual redaction or cleaning them out:


// redaction derived from MetadataRedaction
redaction.Filter = MetadataFilters.Author | MetadataFilters.Manager | MetadataFilters.NameOfApplication;

Below is the table with full list of MetadataFilters items:

FilterNumeric valueDescription
None0Empty filter setting, matches no metadata items
Author1Author of the document
Category2Category of the document
Comments4Document comment
Company8Company of the Author
ContentStatus16Content status
CreatedTime32Created time
HyperlinkBase64Hyperlink base
LastPrinted128Last printed date and time
LastSavedBy256Last saved by user
LastSavedTime1024Last saved date and time
NameOfApplication2048Name of application where the document was created
Manager4096Author’s manager name
RevisionNumber8192Revision number
Subject16384Subject of the document
Template32768Document template name
Title65536Document title
TotalEditingTime131072Total editing time
Version262144Document’s version
Description524288Document’s description
Keywords1048576Document’s keywords
ContentType2097152Content type
All2147483647All types of the metadata items

Clean metadata

You can replace all or specific metadata in the document with empty (blank or minimal) values using EraseMetadataRedaction class. The example below blanks out all properties of the document:


using (Redactor redactor = new Redactor(@"C:\sample.docx"))
   redactor.Apply(new EraseMetadataRedaction(MetadataFilters.All));


You can specify MetadataFilter.All or use default constructor to blank out all metadata within given document, Custom - to clear all custom metadata entries.

Redact metadata

You can use MetadataSearchRedaction to remove sensitive data from document’s metadata using regular expressions. For instance, we can remove any mention of “Company Ltd.”:


using (Redactor redactor = new Redactor(@"C:\sample.docx"))
   redactor.Apply(new MetadataSearchRedaction("Company Ltd.", "--company--"));


First argument is regular expression, second is a replacement string. You can also set scope for redaction by setting filter, e.g. to MetadataFilter.Company. - it will leave the regular expressions matches undone in all metadata items, except “Company” property:


using (Redactor redactor = new Redactor(@"C:\sample.docx"))
   MetadataSearchRedaction redaction = new MetadataSearchRedaction("Company Ltd.", "--company--");
   redaction.Filter = MetadataFilters.Company;

Metadata redaction status

All metadata redactions apply to each metadata item separately, and even if metadata item redaction fails, the rest of the metadata items will be updated. You can find a list of failed, skipped (rejected) metadata items and reasons for that in ErrorMessage property of RedactorLogEntry.Result.

More resources

Advanced usage topics

To learn more about document redaction features, please refer to the advanced usage section.

GitHub examples

You may easily run the code above and see the feature in action in our GitHub examples:

Free online document redaction App

Along with full featured .NET library we provide simple, but powerful free Apps.

You are welcome to perform redactions for various document formats like PDF, DOC, DOCX, PPT, PPTX, XLS, XLSX, Emails and more with our free online Free Online Document Redaction App.