如何使用.NET代码以编程方式修改PDF文档属性?修改PDF文档属性
我已经购买了许多PDF格式的电子书,不幸的是,发布商尚未设置标题,作者和主题属性。您可以通过访问文件“属性”对话框并选择“PDF”选项卡来在文档上看到此内容。尝试在电子阅读器设备上使用PDF电子书时,这是一件非常痛苦的事情。
我不想购买完整的PDF Writer产品来做到这一点,所以我希望有人能指点我一个简单的免费库,我可以用它来以编程方式修改属性。
如果没有.NET库可用我会很感激任何其他技术。
如何使用.NET代码以编程方式修改PDF文档属性?修改PDF文档属性
我已经购买了许多PDF格式的电子书,不幸的是,发布商尚未设置标题,作者和主题属性。您可以通过访问文件“属性”对话框并选择“PDF”选项卡来在文档上看到此内容。尝试在电子阅读器设备上使用PDF电子书时,这是一件非常痛苦的事情。
我不想购买完整的PDF Writer产品来做到这一点,所以我希望有人能指点我一个简单的免费库,我可以用它来以编程方式修改属性。
如果没有.NET库可用我会很感激任何其他技术。
这里是open-source PDF Libraries in C#
一对夫妇的其他库的列表,不在名单上:
ByteScout-PDF
iTextSharp
你看iTextSharp的?这是一个适用于.Net的PDF API。您可以使用PDF进行一些相当有用的工作。
由于双方明道加斯和克诺布洛赫。既然你们都指向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();
}
Docotic.Pdf library可能用于这样的任务。
下面是一个显示how to set PDF document properties的示例。这是一个新的PDF文档,但要改变现有文档中的属性,应该只使用另一个构造函数。
声明:我为Bit Miracle工作。
前段时间我有同样的问题。看我的博客http://www.barcodeschool.com/2010/09/publishers-fix-the-metadata-in-the-pdf-file/ – cuteCAT 2012-10-30 16:36:12