如何使用 .NET 代码以编程方式修改 PDF 文档属性?
我购买了许多 PDF 格式的电子书,不幸的是出版商没有设置标题、作者和主题属性。您可以通过访问文件属性对话框并选择 PDF 选项卡在文档上查看此内容。尝试在电子阅读器设备上使用 PDF 电子书时,这确实很痛苦。
我不想购买完整的 PDF Writer 产品来执行此操作,因此我希望有人可以向我指出一个简单的免费库,我可以使用它以编程方式修改属性。
如果没有可用的 .NET 库,我将不胜感激任何其他技术。
感谢明道加斯和诺布洛赫。既然你们都指向了 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();
}
这里是 C# 中的开源 PDF 库列表
还有一些其他库不在该列表中:
ByteScout-PDF
iTextSharp
你看过 iTextSharp 吗?它是.Net 的 PDF API。您可以使用它对 PDF 做一些相当有用的事情。
Sourceforge 上的Docotic.Pdf 库可用于此类任务。
这里是一个示例,展示了如何设置 PDF 文档属性。它适用于新的 PDF 文档,但要更改现有文档中的属性,应该使用另一个构造函数。
免责声明:我为 Bit Miracle 工作。