GroupDocs.Metadata for .NET 18.12 Release Notes
Leave feedback
Note
This page contains release notes for GroupDocs.Metadata for .NET 18.12.
Major Features
There are the following features and enhancements in this release:
Add support for password-protected documents
Reduce memory consumption of supported Word formats
Reduce memory consumption of supported PowerPoint formats
Ability to update metadata keys in Doc/Docx file format
Remove obsolete members of the Mp3Format class
Remove the MppFormat.GetProperties method (obsolete code)
All Changes
Key
Summary
Category
METADATANET-2462
Add support for password-protected documents
New Feature
METADATANET-2489
Reduce memory consumption of supported Word formats
Enhancement
METADATANET-2424
Reduce memory consumption of supported PowerPoint formats
Enhancement
METADATANET-1436
Ability to update metadata keys in Doc/Docx file format
Enhancement
METADATANET-1519
Remove obsolete members of the Mp3Format class
Enhancement
METADATANET-2463
Remove the MppFormat.GetProperties method (obsolete code)
Enhancement
METADATANET-1614
Removing Author property from DOC/DOCX removes Content Type, Scale, Version and Language properties
Bug
Public API and Backward Incompatible Changes
Note
This section lists public API changes that were introduced in GroupDocs.Metadata for .NET 18.12. It includes not only new and obsoleted public methods, but also a description of any changes in the behaviour behind the scenes in GroupDocs.Metadata which may affect existing code. Any behavior introduced that could be seen as a regression and modifies existing behavior is especially important and is documented here.
Support for password-protected documents
Description
This new feature allows a user to work with password-protected documents of some popular formats.
Public API changes
The LoadOptions class has been added to the GroupDocs.Metadata namespace.
The DocFormat(string, LoadOptions) constructor has been added to the DocFormat class.
The DocFormat(Stream, LoadOptions) constructor has been added to the DocFormat class.
The PptFormat(string, LoadOptions) constructor has been added to the PptFormat class.
The PptFormat(Stream, LoadOptions) constructor has been added to the PptFormat class.
The XlsFormat(string, LoadOptions) constructor has been added to the *XlsFormat *class.
The XlsFormat*(Stream, LoadOptions)* constructor has been added to the *XlsFormat *class.
The PdfFormat(string, LoadOptions) constructor has been added to the *PdfFormat *class.
The PdfFormat*(Stream, LoadOptions)* constructor has been added to the *PdfFormat *class.
Usecases
Load a password-protected PDF document.
LoadOptionsloadOptions=newLoadOptions("password");using(PdfFormatformat=newPdfFormat(@"D:\protected\input.pdf",loadOptions)){// Working with the password-protected documentformat.CleanMetadata();format.Save(@"D:\protected\output.pdf");}
Load a password-protected Excel document.
LoadOptionsloadOptions=newLoadOptions("password");using(XlsFormatformat=newXlsFormat(@"D:\protected\input.xlsx",loadOptions)){// Working with the password-protected documentformat.CleanMetadata();format.Save(@"D:\protected\output.xlsx");}
Load a password-protected PowerPoint document.
LoadOptionsloadOptions=newLoadOptions("password");using(PptFormatformat=newPptFormat(@"D:\protected\input.pptx",loadOptions)){// Working with the password-protected documentformat.CleanMetadata();format.Save(@"D:\protected\output.pptx");}
Load a password-protected Word document.
LoadOptionsloadOptions=newLoadOptions("password");using(DocFormatformat=newDocFormat(@"D:\protected\input.doc",loadOptions)){// Working with the password-protected documentformat.CleanMetadata();format.Save(@"D:\protected\output.doc");}
Check if a document is password-protected.
if(MetadataUtility.IsProtected(@"D:\protected\input.doc")){// Working with the password-protected document}
Reduced memory consumption of supported Word formats
Description
This enhancement allows working with Word documents with less memory consumption.
Public API changes
None.
Usecases
Please note that the DocFormat class implements the IDisposable interface and it’s necessary to call the Dispose() method when you’re done working with its instance.
using(DocFormatformat=newDocFormat(@"d:\input.docx")){// Working with metadata}
If you are loading a Word document from a stream, it’s up to you to close the stream when the file is not needed anymore.
using(Streamstream=File.Open(@"d:\input.doc",FileMode.Open,FileAccess.ReadWrite)){using(DocFormatformat=newDocFormat(stream)){// Working with metadata}// The stream is still open here}
The same rule works if you are saving the output file into a stream.
using(Streamstream=File.Open(@"d:\output.docx",FileMode.OpenOrCreate,FileAccess.ReadWrite)){using(DocFormatformat=newDocFormat(@"d:\input.docx")){// Working with metadataformat.Save(stream);}// The stream is still open here}
Reduced memory consumption of supported PowerPoint formats
Description
This enhancement allows working with PowerPoint documents with less memory consumption.
Public API changes
None.
Usecases
Please note that the PptFormat class implements the IDisposable interface and it’s necessary to call the Dispose() method when you’re done working with its instance.
using(PptFormatformat=newPptFormat(@"d:\input.ppt")){// Working with metadata}
If you are loading a Word document from a stream, it’s up to you to close the stream when the file is not needed anymore.
using(Streamstream=File.Open(@"d:\input.pptx",FileMode.Open,FileAccess.ReadWrite)){using(PptFormatformat=newPptFormat(stream)){// Working with metadata}// The stream is still open here}
The same rule works if you are saving the output file into a stream.
using(Streamstream=File.Open(@"d:\output.ppt",FileMode.OpenOrCreate,FileAccess.ReadWrite)){using(PptFormatformat=newPptFormat(@"d:\input.ppt")){// Working with metadataformat.Save(stream);}// The stream is still open here}
Ability to update metadata keys in Doc/Docx file format
Description
This enhancement allows updating Words and Version properties of Doc/Docx file formats.
Public API changes
None.
Usecases
Update the Words and Version metadata keys in doc/docx documents.