Manage PDF Metadata

This demo uses the DevExpress PDF Document API (PdfDocumentProcessor) to add, extract, or remove PDF metadata. 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.Pdf;
using DevExpress.Pdf.Xmp;

Stream GetMetadata(Stream documentStream) {
    using var processor = new PdfDocumentProcessor();

    processor.LoadDocument(documentStream);

    var xmpDoc = XmpDocument.FromString(processor.Document.Metadata.Data);

    var outputStream = new MemoryStream();
    xmpDoc.Serialize(outputStream, new XmpSerializationOptions());

    outputStream.Position = 0;
    return outputStream;
}

Stream RemoveMetadata(Stream documentStream) {
    using var processor = new PdfDocumentProcessor();

    processor.LoadDocument(documentStream);

    var xmpDoc = XmpDocument.FromString(processor.Document.Metadata.Data);
    xmpDoc.Clear();
    processor.Document.SetMetadata(xmpDoc);

    var outputStream = new MemoryStream();
    processor.SaveDocument(outputStream);

    outputStream.Position = 0;
    return outputStream;
}

Stream AddMetadata(Stream documentStream, Stream metadataStream) {
    using var processor = new PdfDocumentProcessor();

    processor.LoadDocument(documentStream);

    var metadata = XmpDocument.FromStream(metadataStream);
    processor.Document.SetMetadata(metadata);

    var outputStream = new MemoryStream();
    processor.SaveDocument(outputStream);

    outputStream.Position = 0;
    return outputStream;
}