如何在 iText 7 (.Net) 中添加元数据(标题、作者等)。我发现的所有线程和示例似乎都使用旧格式
document.addTitle(“Title”);
在 iText 7 中似乎无法执行此操作。
谢谢
请查看第 7 章,更具体地说是XMP 元数据 小节。在该小节中,您将找到以下示例:
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(
new PdfWriter(dest,
new WriterProperties()
.addXmpMetadata()
.setPdfVersion(PdfVersion.PDF_1_6)));
PdfDocumentInfo info = pdf.getDocumentInfo();
info.setTitle("The Strange Case of Dr. Jekyll and Mr. Hyde");
info.setAuthor("Robert Louis Stevenson");
info.setSubject("A novel");
info.setKeywords("Dr. Jekyll, Mr. Hyde");
info.setCreator("A simple tutorial example");
Document document = new Document(pdf);
document.add(new Paragraph("Mr. Jekyl and Mr. Hyde"));
document.close();
}
如您所见,元数据不再直接添加到文档中,而是添加到从
PdfDocumentInfo
实例获取的 PdfDocument
对象中。此 PdfDocumentInfo
对象用于创建 Info 字典(旧式元数据)以及 XMP 流(新式元数据)。仅当您在 addXmpMetadata()
上使用 WriterProperties
方法时,才会创建 XMP 流。
注意: 由于 PDF 2.0 中信息字典已被弃用,取而代之的是 XMP 元数据,因此这将在 iText 的未来版本中发生变化。在这些版本中,我们将优先使用 XMP,而不是使用 Info 字典。