[英]How can I preserve accessibility and add PDF/A 2-a conformance with Itext
我有一個PDF文檔可以訪問(標記),我想添加它PDF / A 2 - 符合Itext 5.4.5。
我可以打開符合PDF / A 2-b標准的PDFAWriter(注意b),導入每個頁面,復制它們。 輸出文檔符合PDF / A 2-b合規性(我使用兩個驗證器檢查),但后來我失去了可訪問性(結構標記)。
然后我嘗試用PDF / A 2-a合規打開PDFAWriter(注意a),使用writer.setTagged(),導入每個頁面並將它們復制如下:
Document document = new Document();
PdfAWriter writer = PdfAWriter.getInstance(document,
new FileOutputStream(output), PdfAConformanceLevel.PDF_A_2A);
PdfReader pdfReader = new PdfReader(input);
writer.setTagged();
writer.setLanguage("en");
writer.setLinearPageMode();
writer.createXmpMetadata();
document.open();
ICC_Profile icc = ICC_Profile.getInstance(new FileInputStream(PROFILE));
writer.setOutputIntents("Custom", "", "http://www.color.org",
"sRGB IEC61966-2.1", icc);
PdfContentByte cb = writer.getDirectContent();
int n1 = pdfReader.getNumberOfPages();
for (int i = 1; i <= n1; i++) {
document.newPage();
PdfImportedPage page = writer.getImportedPage(pdfReader, i);
cb.addTemplate(page, 0, 0);
}
document.close();
但是這會產生這個錯誤
Exception in thread "main" com.itextpdf.text.pdf.PdfAConformanceException: Alt entry should specify alternate description for /Figure element. at com.itextpdf.text.pdf.internal.PdfA2Checker.checkStructElem(PdfA2Checker.java:822) at com.itextpdf.text.pdf.internal.PdfAChecker.checkPdfAConformance(PdfAChecker.java:222) at com.itextpdf.text.pdf.internal.PdfAConformanceImp.checkPdfIsoConformance(PdfAConformanceImp.java:70)
任何解決方法? 解決這個問題?
(我知道PDFCopy會保留標記,但是如何指定PDF / A 2-a bit ......?)
我很容易在3-Heights中做到這一點,但我想要一個IText解決方案來解決這個問題。
(就個人而言,我對提供的界面有點失望。例如,PDFCopy擴展了PdfWriter,但不擴展PdfAWriter)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.