如何使用.NET代码以编程方式修改PDF文档属性?
我已经购买了许多PDF格式的电子书,不幸的是,出版商没有设置标题,作者和主题属性。您可以通过访问文件属性对话框并选择PDF选项卡在文档上看到此信息。尝试在电子阅读器设备上使用PDF电子书时,这是一个真正的痛苦。
我不想购买完整的PDF Writer产品来执行此操作,所以我希望有人能指出我可以用来以编程方式修改属性的简单免费库。
如果没有可用的.NET库,我会感激任何其他技术。
答案 0 :(得分:6)
感谢Mindaugas和Knobloch。既然你们都指向了iTextSharp我就这样做了,并且能够使用iTextSharp和类似于下面所示的代码来解决我的问题。我注意到的一件事是,生成的文件小于115,143字节,起始文件为3,639,172,因此看起来我要么丢失一些信息,要么这个库比用于创建文档的原始产品更有效。
另一个有趣的事情是,在阅读这个图书馆时,我一直看到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();
}
答案 1 :(得分:4)
以下是open-source PDF Libraries in C#
的列表其他几个不在该列表中的库:
ByteScout-PDF
iTextSharp
答案 2 :(得分:3)
你看过iTextSharp吗?它是.Net的PDF API。你可以用PDF来做一些相当有用的东西。
答案 3 :(得分:2)
Docotic.Pdf library可用于此类任务。
以下是显示how to set PDF document properties的示例。这是一个新的PDF文档,但要更改现有文档中的属性,应该使用另一个构造函数。
免责声明:我为Bit Miracle工作。