2008-11-26 271 views
7

如何使用.NET代码以编程方式修改PDF文档属性?修改PDF文档属性

我已经购买了许多PDF格式的电子书,不幸的是,发布商尚未设置标题,作者和主题属性。您可以通过访问文件“属性”对话框并选择“PDF”选项卡来在文档上看到此内容。尝试在电子阅读器设备上使用PDF电子书时,这是一件非常痛苦的事情。

我不想购买完整的PDF Writer产品来做到这一点,所以我希望有人能指点我一个简单的免费库,我可以用它来以编程方式修改属性。

如果没有.NET库可用我会很感激任何其他技术。

+0

前段时间我有同样的问题。看我的博客http://www.barcodeschool.com/2010/09/publishers-fix-the-metadata-in-the-pdf-file/ – cuteCAT 2012-10-30 16:36:12

回答

6

由于双方明道加斯和克诺布洛赫。既然你们都指向iTextSharp,我就这么做了,并且能够使用iTextSharp和类似于下面显示的代码来解决我的问题。我注意到的一件事是,结果文件比起始文件3,639,172小115,143字节,所以看起来我要么丢失了一些信息,要么这个库比用于创建文档的原始产品更高效。

另一个有趣的事情是,阅读关于这个库时,我总是看到链接到由我有:-)问题的电子书相同发行商发行iText in Action

 using System.Diagnostics; 
     using iTextSharp.text.pdf; 
     using System.IO; 
     using System.Collections; 

     PdfReader pdfReader = new PdfReader(filePath); 
     using (FileStream fileStream = new FileStream(newFilePath, FileMode.Create, FileAccess.Write)) 
     { 
      string title = pdfReader.Info["Title"] as string; 
      Trace.WriteLine("Existing title: " + title); 

      PdfStamper pdfStamper = new PdfStamper(pdfReader, fileStream); 

      // The info property returns a copy of the internal HashTable 
      Hashtable newInfo = pdfReader.Info; 

      newInfo["Title"] = "New title"; 

      pdfStamper.MoreInfo = newInfo; 

      pdfReader.Close(); 
      pdfStamper.Close(); 
     }