#itext7
#itext7
Вопрос:
Файлы, которые должны демонстрировать UA поддержки в iText7 и предоставляются как часть руководства по запуску, не проходят полную проверку доступности. Этот тест доступен в Adobe Acrobat Pro.
Я протестировал следующие файлы: cmp_quick_brown_fox_PDFUA.pdf и cmp_united_states_PDFA-3a.pdf
Какой API можно использовать, чтобы сделать их совместимыми? Есть ли план по устранению этой проблемы? Спасибо за вашу помощь.
Комментарии:
1. Пожалуйста, покажите достаточно кода, чтобы воспроизвести проблему.
2. cmp_united_states_PDFA-3a.pdf проходит предварительную проверку для 3B, 3A и 3U для меня
3. Я обновил вопрос, чтобы лучше проиллюстрировать проблему. Здесь нет пользовательского кода; это все примеры iText, как указано. Я ценю вашу помощь.
Ответ №1:
Чтобы обеспечить соответствие требованиям PDF / UA, перед вызовом document.close() я вызываю метод, который я написал, который устанавливает свойство tabs на каждой сгенерированной странице в соответствии со структурой документа:
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:tempresult.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()
Я обнаружил, что мне нужно установить для свойства immediateFlush значение false при создании объекта Document, чтобы иметь возможность перебирать страницы перед закрытием документа.
Ответ №2:
Один из способов устранить проблему для 7.0.1
более ранних версий — вручную установить /Tabs
ключ в значение /S
, как предложено.
В 7.0.2
и на эта проблема устранена, и по умолчанию вы получите помеченные документы, соответствующие проверке порядка вкладок.
Кстати, с 7.0.2
этого момента вы также можете использовать setTabOrder
удобный метод PdfPage
для изменения порядка вкладок.
Комментарии:
1. Пожалуйста, обратите внимание, что на дату этого ответа
7.0.2
версия еще не опубликована, но она будет выпущена очень скоро, и ответ будет полезен для людей, которые позже столкнутся с этим вопросом и захотят обновиться.