C# 使用iTextSharp读取/修改PDF元数据

C# 使用iTextSharp读取/修改PDF元数据,c#,pdf,metadata,itextsharp,xmp,C#,Pdf,Metadata,Itextsharp,Xmp,我正在尝试使用iTextSharp读取/修改PDF元数据。我找到了使用pdfreader和pdfstamper的方法。我想知道我是否还可以阅读/修改额外的元数据信息,如版权信息和XMP photoshop名称空间中的其他一些信息 如果有人能给我指点解决办法,我将不胜感激 谢谢,, Murugesh.您可以使用“PdfReader”读取元数据。我读过这样的元数据: PdfReader reader = new PdfReader("HelloWorldNoMetadata.pdf"); strin

我正在尝试使用iTextSharp读取/修改PDF元数据。我找到了使用pdfreader和pdfstamper的方法。我想知道我是否还可以阅读/修改额外的元数据信息,如版权信息和XMP photoshop名称空间中的其他一些信息

如果有人能给我指点解决办法,我将不胜感激

谢谢,,
Murugesh.

您可以使用“PdfReader”读取元数据。我读过这样的元数据:

PdfReader reader = new PdfReader("HelloWorldNoMetadata.pdf");
string s = reader.Info["Author"];
您可以尝试使用
iTextSharp.text.xml.xmp.XmpWriter
类来编写元数据。我从来没有这样做过,但如下所示:


请尝试中的示例。这里有关于修改pdf文件任何部分的示例

谢谢你的回复。它起作用了。我现在能够将值放入XMP中的任何模式。但每当我插入公共元数据字段(Author、Title、Subject、Keywords)以外的值时,它就会将它们作为自定义字段添加到“pdfx”模式下,而不是插入它的模式下。我不希望它们被添加为自定义字段。有什么建议吗?谢谢你,穆鲁格什。@穆鲁格-不,对不起,我没有任何指针;我从来没试过你在做什么。我在iTextSharp.text.xml.xmp名称空间中也找不到太多内容。嗨,有人有添加元数据的基本C#示例吗?我似乎无法将此转换为C。谢谢。谢谢分享。我已经完成了这个应用程序。但希望这能帮助那些正在寻找这个问题答案的人。
PdfReader reader = new PdfReader("HelloWorldNoMetadata.pdf");
PdfStamper stamper = new PdfStamper(reader,
 new FileOutputStream("HelloWorldStampedMetadata.pdf"));
HashMap info = reader.getInfo();
info.put("Author", "Bruno Lowagie");
info.put("Title", "Hello World stamped");
stamper.setMoreInfo(info);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
XmpWriter xmp = new XmpWriter(baos, info);
xmp.close();
stamper.setXmpMetadata(baos.toByteArray());
stamper.close();