Manage XMP Metadata

This demo uses the New DevExpress PDF Document API (PdfDocument) to add, extract, or remove XMP metadata of a PDF file. You can process the predefined sample file or supply your own document. To do the latter, select Upload a File in the file selection drop-down menu.

Use the … Metadata button to select the required action, process the document, and download the result. If you choose to Add Metadata, the demo uses Sample Metadata to update the file.

Select a Document
Sample_Main.pdf
Sample metadata
Sample_Metadata.xmp



using DevExpress.Docs.Pdf;

Stream GetXmpMetadata(Stream documentStream) {
    using var doc = new PdfDocument(documentStream);

    var outputStream = new MemoryStream();
    var writer = new StreamWriter(outputStream);
    if (doc.Metadata.Xmp != null)
        writer.Write(doc.Metadata.Xmp.ToXmlString());
    writer.Flush();

    outputStream.Position = 0;
    return outputStream;
}

Stream RemoveXmpMetadata(Stream documentStream) {
    using var doc = new PdfDocument(documentStream);

    doc.Metadata.Xmp = null;

    var outputStream = new MemoryStream();
    doc.Save(outputStream);
    outputStream.Position = 0;

    return outputStream;
}

Stream AddXmpMetadata(Stream documentStream, Stream metadataStream) {
    using var doc = new PdfDocument(documentStream);

    doc.Metadata.Xmp = XmpMetadata.FromStream( metadataStream);

    var outputStream = new MemoryStream();
    doc.Save(outputStream);
    outputStream.Position = 0;

    return outputStream;
}