.net - 使用 iText 7 添加元数据

标签 .net itext

如何在 iText 7 (.Net) 中添加元数据(标题、作者等)。我发现的所有线程和示例似乎都使用旧格式

document.addTitle(“Title”); 

看来您无法在 iText 7 中执行此操作。

谢谢

最佳答案

请查看chapter 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();
}

如您所见,元数据不再直接添加到文档中,而是添加到从 PdfDocument 实例获取的 PdfDocumentInfo 对象中。此 PdfDocumentInfo 对象用于创建 Info 字典(旧式元数据)以及 XMP 流(新式元数据)。仅当您在 WriterProperties 上使用 addXmpMetadata() 方法时,才会创建 XMP 流。

注意:由于在 PDF 2.0 中信息字典已被弃用,取而代之的是 XMP 元数据,因此这将在 iText 的 future 版本中发生变化。在这些版本中,我们将优先使用 XMP,而不是使用 Info 字典。

关于.net - 使用 iText 7 添加元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47609005/

相关文章:

.net - 使用 Mailchimp.net API 检查电子邮件是否存在

.net - 大容量 UPS 运输解决方案

c# - 如何将由垂直线分隔的段落文本添加到 itextsharp 创建的 PDF 中

python - 从pdf文档中提取文本时是否可以获取行号?

asp.net - iTextSharp HTML 到 PDF 转换

c# - 如何使用 Socket.BeginReceive Overload 3?

c# - 如何更改复选框上的支票图像

c# - MVC4 - 路由值不被记住

C# 3.0 使用 MemoryStream 将 itextsharp pdf 保存到数据库

java - iText:成功调整一页pdf,但当pdf文档中有多个页面时失败