iTextSharp - 保留PDF元数据(PDF Creator,上次修改,......)

时间:2015-06-21 21:56:53

标签: c# pdf itextsharp metadata

我正在为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 ...");
    }

0 个答案:

没有答案