如何使用iTextSharp保存PDF的.MoreInfo属性?
|
我目前正在尝试将以下类的元数据属性哈希表添加到PDF。问题是,即使它似乎已将哈希表分配给了stamper.MoreInfo属性,但一旦关闭了stamper,它似乎就没有保存MoreInfo属性。
public class PdfEnricher
{
readonly IFileSystem fileSystem;
public PdfEnricher(IFileSystem fileSystem)
{
this.fileSystem = fileSystem;
}
public void Enrich(string pdfFile, Hashtable fields)
{
if (!fileSystem.FileExists(pdfFile)) return;
var newFile = GetNewFileName(pdfFile);
var stamper = GetStamper(pdfFile, newFile);
SetFieldsAndClose(stamper, fields);
}
string GetNewFileName(string pdfFile)
{
return fileSystem.GetDirectoryName(pdfFile) + @\"\\NewFileName.pdf\";
}
static void SetFieldsAndClose(PdfStamper stamper, Hashtable fields)
{
stamper.MoreInfo = fields;
stamper.FormFlattening = true;
stamper.Close();
}
static PdfStamper GetStamper(string pdfFile, string newFile)
{
var reader = new PdfReader(pdfFile);
return new PdfStamper(reader, new FileStream(newFile, FileMode.Create));
}
}
有任何想法吗?
没有找到相关结果
已邀请:
1 个回复
呸溉
请注意,这将遍历文档信息字典中的所有字段,而不仅仅是自定义字段。还应注意,从
到
所做的更改不会保留到PDF中。该地图是新建,填充并返回的。