我正在对一堆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();
}
答案 0 :(得分:0)
我今天做了类似的事情并遇到了同样的问题。 (开车送我疯了)如果您保存文件并重新打开它,您会注意到PdfReader的MetaData属性在保存之前仍然具有许多原始值。我通过在压模之后填入这三行来解决问题.MoreInfo = info;
MemoryStream ms = new MemoryStream();
XmpWriter xw = new XmpWriter(ms,info);
stamper.XmpMetadata = ms.GetBuffer();
并在顶部:
using System.IO;
using iTextSharp.text.xml.xmp;
希望这有助于下一个发现这个的人:)