Как добавить метаданные (название, автора и т. Д.) В iText 7 (.Net). Все темы и примеры, которые я нашел, похоже, используют старый формат

document.addTitle(“Title”); 

Похоже, в iText 7 это невозможно.

Благодарность

2
Gerry 2 Дек 2017 в 17:38

1 ответ

Лучший ответ

Взгляните на глава 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 используется для создания информационного словаря (метаданные старого стиля), а также потока XMP (метаданные нового стиля). Поток XMP создается только в том случае, если вы используете метод addXmpMetadata() для WriterProperties.

ПРИМЕЧАНИЕ. Поскольку информационный словарь устарел и заменен метаданными XMP в PDF 2.0, это изменится в будущих версиях iText. В этих версиях мы отдадим предпочтение XMP, а не словарю Info.

4
Bruno Lowagie 2 Дек 2017 в 18:35
2
Я знаю, что вы не должны говорить спасибо в комментариях, но я искал целую вечность и полностью пропустил это. Тогда спасибо.
 – 
Gerry
2 Дек 2017 в 19:43