Can I create a PDF labeled PDF (PDF / UA) using PDFBox? It looks like the PDFBox has an API for this (package org.apache.pdfbox.pdmodel.documentinterchange.taggedpdf), but I can not find any tutorials or code examples.
Using the code below, I generated a PDF file containing the image, and the NVDA screen reader (in my case) recognizes it and reads "... graphic Alternate Description". However, checking for PAC 2 availability shows an error: "Image object not marked."
PDDocument doc = new PDDocument();
PDPage page = new PDPage();
doc.addPage(page);
PDDocumentCatalog documentCatalog = doc.getDocumentCatalog();
PDImageXObject pdImage = PDImageXObject.createFromFile(imagePath, doc);
PDPageContentStream contents = new PDPageContentStream(doc, page);
contents.drawImage(pdImage, 100, 600, pdImage.getWidth() / 2, pdImage.getHeight() / 2);
contents.close();
PDStructureTreeRoot treeRoot = new PDStructureTreeRoot();
PDStructureElement structureElement = new PDStructureElement(StandardStructureTypes.Figure, treeRoot);
structureElement.setPage(page);
PDMarkedContent markedImg = new PDMarkedContent(COSName.IMAGE, new COSDictionary());
markedImg.addXObject(pdImage);
structureElement.appendKid(markedImg);
structureElement.setAlternateDescription("Alternate Description");
treeRoot.appendKid(structureElement);
documentCatalog.setStructureTreeRoot(treeRoot);
doc.save(fileName);
Can you give some clarifications and / or code examples on this?
source
share