I am writing a little archiver for PDF documents and would like to add a few Keywords
to the metadata.
I used code from Read/Modify PDF Metadata using iTextSharp but when adding them, some metadata is overridden (ie ModDate
). Is there a way to suppress this behaviour? This is not helpful for (ie searching/ filtering) documents lateron.
PDF Producer: iText 1.4 (by lowagie.com); modified using iTextSharp (TM) 5.5.6 (c) 2000-2014 iTextGroup NV (AGPL-version)
Code I use to add keywords
private void Button_Click_ADD_KEYWORDS(object sender, RoutedEventArgs e)
{
using (MemoryStream m = new MemoryStream())
{
using (PdfReader pdfReader = new PdfReader(@"c:\sim\input.pdf"))
using (PdfStamper pdfStamper = new PdfStamper(pdfReader, m))
{
pdfStamper.Writer.CloseStream = false;
Dictionary<String, String> info_orig = pdfStamper.Reader.Info;
Dictionary<String, String> info_new = new Dictionary<String, String>();
foreach (String key in info_orig.Keys)
{
if(key.ToLower().Equals("keywords"))
{
info_new["Keywords"] = info_orig["Keywords"] + "; " + this.AddKeywords();
}
else
{
info_new[key] = info_orig[key];
}
}
info_orig.Clear();
pdfStamper.MoreInfo = info_new;
}
m.Seek(0L, SeekOrigin.Begin);
using (FileStream f = new FileStream(@"C:\sim\output.pdf", FileMode.Create))
{
m.CopyTo(f);
}
}
MessageBox.Show("I think it worked ...");
}