使用iText 7添加元数据

时间:2017-12-02 14:38:05

标签: .net itext

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

document.addTitle(“Title”); 

似乎你不能在iText 7中这样做。

由于

1 个答案:

答案 0 :(得分:1)

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

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

注意:由于不推荐使用信息词典而支持PDF 2.0中的XMP元数据,因此在未来版本的iText中会有所改变。在这些版本中,我们将优先使用XMP而不是使用Info字典。