0

我正在对一堆 PDF 文件中的元数据进行批量更新,出于某种原因,主题总是被附加到关键字元数据的末尾。即使我删除了“关键字”更新,当我更新数据时它仍在更新。

这是预期的吗?有没有其他人见过这个?

private void ProcessWithITextSharp(string sourceFile, string destFile) {

iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader( sourceFile );
FileStream fs = new FileStream( destFile, FileMode.Create, FileAccess.Write, FileShare.None );
PdfStamper stamper = new PdfStamper( reader, fs );

Dictionary<string, string> info = reader.Info;

// title
UpdateValueInInfoDictionary( info, "Title", "My Ridiculous Title" );
UpdateValueInInfoDictionary( info, "Subject", "A Ridiculous Story" );
UpdateValueInInfoDictionary( info, "Author", "Mr. Ridiculous " );
UpdateValueInInfoDictionary( info, "Keywords", "A ridiculous story with a ridiculous title." );

stamper.MoreInfo = info;
stamper.Close();
fs.Close();

}

在此处输入图像描述

4

1 回答 1

0

我今天正在做类似的事情并且遇到了同样的问题。(把我逼疯了)如果你保存文件并重新打开它,你会注意到 PdfReader 的 MetaData 属性在保存之前仍然有许多原始值。我通过在 stamper.MoreInfo = info; 之后填充这三行来解决问题。

MemoryStream ms = new MemoryStream();
XmpWriter xw = new XmpWriter(ms,info);
stamper.XmpMetadata = ms.GetBuffer();

在顶部:

using System.IO;
using iTextSharp.text.xml.xmp;

希望这可以帮助下一个找到这个的人:)

于 2014-02-12T23:18:59.257 回答