我正在为PDF文档编写一个小档案,并希望在元数据中添加一些Keywords
。
我使用了Read/Modify PDF Metadata using iTextSharp中的代码,但在添加时,会覆盖一些元数据(即ModDate
)。有没有办法抑制这种行为?这对以后的文档(即搜索/过滤)没有帮助。
PDF制片人:iText 1.4(由lowagie.com提供);使用iTextSharp(TM)5.5.6(c)2000-2014 iTextGroup NV(AGPL版本)修改
我用来添加关键字的代码
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 ...");
}