The example below demonstrates how to update existing metadata properties using a combination of criteria. Please note that the updateProperties method checks the type of all properties before applying any changes. If a property satisfies the predicate but has a type different from the passed value it won’t be updated. The explicit type check in the example is performed since we use the existing value to filter metadata properties.
Open a file to be updated
Specify a predicate that will be used to filter desired metadata properties
Specify a value which you want to be assigned to the selected properties
Pass the predicate and the new value to the updateProperties method
Check the actual number of updated properties
Save the changes
advanced_usage.UpdatingMetadata
fs.readdirSync(Constants.inputPath).forEach(file=>{varmetadata=newgroupdocs.metadata.Metadata(Constants.inputPath+file);if(metadata.getFileFormat()!=groupdocs.metadata.FileFormat.Unknown&&!metadata.getDocumentInfo().isEncrypted()){console.log(file);// Add a property containing the file last printing date if it's missing
// Note that the property will be added to metadata packages that satisfy the following criteria:
// 1) Only existing metadata packages will be affected. No new packages are added during this operation
// 2) There should be a known metadata property in the package structure that fits the search condition but is actually missing in the package.
// All properties supported by a certain package are usually defined in the specification of a particular metadata standard
varaffected=metadata.updateProperties(newgroupdocs.metadata.ContainsTagSpecification(groupdocs.metadata.Tags.getTime().getPrinted()),newgroupdocs.metadata.PropertyValue(newDate()));console.log(`Affected properties: ${affected}`);}});
More resources
Advanced usage topics
To learn more about library features and get familiar how to manage metadata and more, please refer to theadvanced usage section.
GitHub examples
You may easily run the code above and see the feature in action in our GitHub examples: