Search code examples
c#pdfmetadataitextxmp

Read/Modify PDF Metadata using iTextSharp


I am trying to use iTextSharp to read/modify PDF metadata. I figured out how to do it using pdfreader and pdfstamper. I was wondering if I could also read/modify additional metadata information like copyright information and few others within the XMP photoshop namespace.

I would greatly appreciate any pointers to the solution.

Thank you, Murugesh.


Solution

  • You can read metadata using `PdfReader'. I've read metadata like this:

    PdfReader reader = new PdfReader("HelloWorldNoMetadata.pdf");
    string s = reader.Info["Author"];
    

    You can try the iTextSharp.text.xml.xmp.XmpWriter class to write metadata. I've never done it but I found this code below:

    PdfReader reader = new PdfReader("HelloWorldNoMetadata.pdf");
    PdfStamper stamper = new PdfStamper(reader,
     new FileOutputStream("HelloWorldStampedMetadata.pdf"));
    HashMap info = reader.getInfo();
    info.put("Author", "Bruno Lowagie");
    info.put("Title", "Hello World stamped");
    stamper.setMoreInfo(info);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    XmpWriter xmp = new XmpWriter(baos, info);
    xmp.close();
    stamper.setXmpMetadata(baos.toByteArray());
    stamper.close();