GroupDocs.Redaction for Java 19.11 Release Notes

Note
This page contains release notes for GroupDocs.Redaction for Java 19.11.

Major Features

Warning
In this version we’re introducing new public API which was designed to be simple and easy to use. For more details about new API please check Public Docs section. The legacy API is no longer available.

Other notable features:

  • Added support for Apple Numbers ‘09 spreadsheets
  • Added ability to specify PDF Compliance level

Full List of Issues Covering all Changes in this Release

KeySummaryCategory
REDACTIONJAVA-47Add support for Apple Numbers formatImprovement
REDACTIONJAVA-48Add ability to specify PDF Compliance levelImprovement

Public API and Backward Incompatible Changes

Here are the key reasons to use the new updated API provided by GroupDocs.Redaction for Java since version 19.11:

  • Redactor class was introduced as a single entry point to manage the document redaction process (instead of Documentclass from previous versions).

  • Methods redactWith() of the Document class were replaced with similar apply() methods in Redactor class. 

  • Method Document.save(OutputStream, SaveOptions) was replaced with Redactor.save(OutputStream, RasterizationOptions).

  • Constructor LoadOptions(DocumentFormatConfiguration) was removed.

  • Exception and option classes were put in separate packages. 

  • RedactionSummary was renamed into RedactorChangeLogRedactionLogRecord into RedactorLogRecordMetadataFilter into MetadataFilters.

  • Obsolete members were removed from public API.

  • Added a number of new exception classes and a base exception class for GroupDocs.Redaction exceptions.

Public API changes

Class DocumentFormatException has been moved to com.groupdocs.redaction.exceptionspackage.
Class IncorrectPasswordException has been added to com.groupdocs.redaction.exceptionspackage. 
Class PasswordRequiredException has been added to com.groupdocs.redaction.exceptionspackage. 
Class TrialLimitationsException has been moved tocom.groupdocs.redaction.exceptionspackage.
Class GroupDocsRedactionException has been added to com.groupdocs.redaction.exceptionspackage.
Class LoadOptions has been moved to com.groupdocs.redaction.optionspackage.
Class RasterizationOptions has been moved to com.groupdocs.redaction.optionspackage.
Class Save****Options has been moved to com.groupdocs.redaction.optionspackage.
Interface ICreatePageStream has been added to com.groupdocs.redaction.optionspackage.
Interface IReleasePageStream has been added to com.groupdocs.redaction.optionspackage.
Enum PdfComplianceLevel has been added to com.groupdocs.redaction.optionspackage.
Enum PreviewFormats has been added to com.groupdocs.redaction.optionspackage.
Class PreviewOptions has been added to com.groupdocs.redaction.optionspackage.
Interface IPreviewable has been added to com.groupdocs.redaction.integrationpackage.
Class License has been moved to com.groupdocs.redaction.licensingpackage.
Class Metered has been moved to com.groupdocs.redaction.licensingpackage.
Class DocumentFormatConfiguration has been moved to com.groupdocs.redaction.configurationpackage.
Class RedactorConfiguration has been moved to com.groupdocs.redaction.configurationpackage.
Class DocumentFormatInstance has been moved to com.groupdocs.redaction.integrationpackage.
Interface IAnnotatedDocument has been moved to com.groupdocs.redaction.integrationpackage.
Interface ICellularFormatInstance have been moved to com.groupdocs.redaction.integrationpackage.
Interface IImageFormatInstance have been moved to com.groupdocs.redaction.integrationpackage.
Interface IMetadataAccess have been moved to com.groupdocs.redaction.integrationpackage.
Interface IRasterizableDocument have been moved to com.groupdocs.redaction.integrationpackage.
Interface ITextualFormatInstance have been moved to com.groupdocs.redaction.integrationpackage.
Interface MetadataCollection have been moved to com.groupdocs.redaction.integrationpackage.
Interface MetadataItem have been moved to com.groupdocs.redaction.integrationpackage.
Class Document has been removed from public API.
Method RedactorConfiguration.getInstance() has been removed from public API.
Method getDefaultConfiguration() has been added tocom.groupdocs.redaction.integration.DocumentFormatInstance class.
Method getFormatConfiguration() has been removed from LoadOptions class.
Overloaded methods redactWith(…) of the Document class has been replaced with apply(…) methods of thecom.groupdocs.redaction.Redactor class.
Overloaded methods d****etermineFormat(…)  have been removed from public API.
Obsolete method getIsValidLicense() has been removed fromGroupDocs.Redaction.Licenseclass.
Method getDocumentInfo()  has been added to GroupDocs.Redaction.Redactorclass.
Method generatePreview(GroupDocs.Redaction.Options.PreviewOptions) has been added to GroupDocs.Redaction.Redactorclass.
Methods setAccessGranted(System.Boolean) and getAccessGranted() have been added to GroupDocs.Redaction.Integration.DocumentFormatInstanceclass.
Class RedactionSummaryhas been renamed into RedactorChangeLog.
Class RedactionLogEntryhas been renamed into RedactorLogEntry.
Obsolete method getSuccess() has been removed fromGroupDocs.Redaction.RedactionResultclass.
Obsolete methodgetSuccess() has been removed fromGroupDocs.Redaction.RedactorChangeLogclass.
Flagged enumeration MetadataFilterhas been renamed into MetadataFilters.
Class RedactionPolicy has been moved to com.groupdocs.redaction package.
Interface IDocumentInfohas been added to com.groupdocs.redaction package.
Class DocumentInfo has been added to com.groupdocs.redaction package.
Class FileTypehas been added to com.groupdocs.redaction package.
Class PageInfohas been added to com.groupdocs.redaction package.
Method rasterize(OutputStream, RasterizationOptions)  has been added to com.groupdocs.redaction.integration.IRasterizableDocumentinterface.

Usecases

The following example demonstrates how to redact Microsoft Office Word document and dumping statuses of applied redactions using old and new API:

Old coding style

// Load the file
Document doc = Redactor.load("Documents/Doc/sample.docx");
//Perform redaction using exact phrase
RedactionSummary summary = doc.redactWith(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[Personal]")));
for (RedactionLogEntry entry : summary.getRedactionLog())
{
	System.out.println(entry.getStatus());
}
//Save the resultant document
doc.save();
// Close the Document
doc.close();

New coding style

// Load the file
Redactor redactor = new Redactor("Documents/Doc/sample.docx");
//Perform redaction using exact phrase
RedactorChangeLog summary = redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[Personal]")));
for (RedactorLogEntry entry : summary.getRedactionLog())
{
	System.out.println(entry.getResult().getStatus());
}
//Save the resultant document
redactor.save();
// Close the Redactor 
redactor.close();