Components All New MacOS Windows Linux iOS
Examples Mac & Win Server Client Guides Statistic FMM Blog Deprecated Old


The function sets or replaces the XMP metadata stream of a specific object.

Component Version macOS Windows Linux Server iOS SDK
DynaPDF 5.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ Yes
MBS( "DynaPDF.SetMetadata"; PDF; ObjType; Handle; XMP )   More


Parameter Description Example
PDF The PDF reference returned from DynaPDF.New. $pdf
ObjType The object type. Can be Catalog, Font, Image, Page or Template. "Catalog"
Handle Object handle or -1 for the catalog object. -1
XMP The XMP metadata as text.


Returns OK or error.


The function sets or replaces the XMP metadata stream of a specific object.
The function deletes the XMP stream if no buffer will be provided.
If the global XMP stream of the Catalog object should be replaced then proceed as follows:
  • Set the wished output PDF version with DynaPDF.SetPDFVersion.
  • Get a preview of the XMP stream with DynaPDF.GetMetadata.
  • Modify the returned stream as needed and save it with DynaPDF.SetMetadata, finished!

The above steps make sure that the XMP metadata and document info contain the same values. This is especially important for PDF standards like PDF/A or PDF/X. DynaPDF makes sure that the creation and modification date will not be changed when closing the file.

See also SetMetadata function in DynaPDF manual.


Read, change and write XMP metadata:

Set Variable [ $pdf ; Value: MBS("DynaPDF.New") ]
# Load PDF from container
Set Variable [ $r ; Value: MBS("DynaPDF.OpenPDFFromContainer"; $pdf; Merge PDFs::InputPDF) ]
Set Variable [ $r ; Value: MBS("DynaPDF.ImportPDFFile"; $pdf; 1) ]
# get current XMP
Set Variable [ $xmp ; Value: MBS("DynaPDF.GetMetadata"; $pdf; "catalog"; -1) ]
# delete XMP metadata
// Set Variable [ $r ; Value: MBS("DynaPDF.SetMetaData"; $pdf; "") ]
# or write new XMP metadata
Set Variable [ $r ; Value: MBS("DynaPDF.SetMetaData"; $pdf; "catalog"; -1; $XMP) ]
# save
Set Field [ Merge PDFs::FinalPDF ; MBS("DynaPDF.Save"; $pdf; "Merged.pdf") ]
Set Variable [ $r ; Value: MBS("DynaPDF.Release"; $pdf) ]

See also

Blog Entries

This function checks for a license.

Created 29th July 2015, last changed 16th December 2020

DynaPDF.SetMetaConvFlags - DynaPDF.SetMiterLimit