簡體   English   中英

如何保留可訪問性並添加PDF / A 2-a與Itext的一致性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM