Для обеспечения PDF/соответствия UA, перед вызовом document.close() я называю метод, который я написал, который устанавливает свойство ушки на каждой сгенерированной страницы, чтобы следовать структуре документа:
void setTabs(PdfDocument pdfDocument) {
int numPages = pdfDocument.getNumberOfPages();
for (int i = 1; i <= numPages; i++) {
PdfPage page = pdfDocument.getPage(i);
page.put(new PdfName("Tabs"), PdfName.S);
}
}
Например:
String dest = ("C:\temp\result.pdf");
PdfWriter writer = new PdfWriter(dest, new WriterProperties().addXmpMetadata());
PdfDocument pdfDoc = new PdfDocument(writer);
Document document = new Document(pdfDoc, PageSize.LETTER, false);
pdfDoc.setTagged();
pdfDoc.getCatalog().setViewerPreferences(new PdfViewerPreferences().setDisplayDocTitle(true));
pdfDoc.getCatalog().setLang(new PdfString("en-US"));
PdfDocumentInfo info = pdfDoc.getDocumentInfo();
info.setTitle("The Title");
Paragraph p = new Paragraph();
p.add(new Text("Hello World");
document.add(p);
setTabs(pdfDoc);
document.close()
Я обнаружил, что при создании объекта Document я должен установить для свойства promptFlush значение false, чтобы иметь возможность выполнять итерацию по страницам перед закрытием документа.
Просьба показать достаточно кода, чтобы воспроизвести проблему. – mkl
cmp_united_states_PDFA-3a.pdf передает предполетную запись для 3B, 3A и 3U для меня –
Я обновил вопрос, чтобы лучше проиллюстрировать проблему. Здесь нет специального кода; это все примеры iText, как предусмотрено. Я ценю вашу помощь. –