c#: iTextSharp,如何编辑pdf文档的标题属性

本文关键字:pdf 文档 属性 标题 编辑 iTextSharp 何编辑 | 更新日期: 2023-09-27 17:54:30

我在c#项目中使用iTextSharp库来阅读和编辑pdf文档。现在我想更改某个pdf文档的标题。我搜索了很多关于这个问题,但没有一个对我有用。我发现最好的如下:

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();
}

但是Visual Studio说 System.Collection.Hashtable不能隐式地转换为System.Collections.Generic.IDictionary<string,string>

希望有人能帮我。或者使用iTextSharp来编辑标题。

c#: iTextSharp,如何编辑pdf文档的标题属性

你需要改变这个:

Hashtable newInfo = pdfReader.Info;

:

Dictionary<string, string> newInfo = pdfReader.Info;

因为正如错误所说,pdfReader.Info返回对IDictionary<string, string>的引用,而不是对Hashtable的引用。

注意,如果您想修改Info,则不需要创建额外的局部变量:

var title = "Title";
if (pdfReader.Info.ContainsKey(title))
{
    pdfReader.Info[title] = "NewTitle";
}