Я ссылаюсь на ошибку, которую я получаю при подписании конкретного pdf-файла с библиотеками Java iText версии 5.5.3.Ошибка iText при проверке pdf PDF/A-1A с java
Adobe Pro проверяет соответствие и сообщает мне, что соответствие было подтверждено, но iText сообщит мне, что «Аннотирование типа/виджета должно содержать ключ содержания».
Вы можете получить конкретный файл на http://www.boe.es/boe/dias/2014/08/06/pdfs/BOE-A-2014-8500.pdf
я отправляю ниже трассы я получаю:
Caused by: com.itextpdf.text.pdf.PdfAConformanceException: Annotation of type /Widget should have Contents key.
at com.itextpdf.text.pdf.internal.PdfA1Checker.checkAnnotation(PdfA1Checker.java:462)
at com.itextpdf.text.pdf.internal.PdfAChecker.checkPdfAConformance(PdfAChecker.java:219)
at com.itextpdf.text.pdf.internal.PdfAConformanceImp.checkPdfIsoConformance(PdfAConformanceImp.java:71)
at com.itextpdf.text.pdf.PdfWriter.checkPdfIsoConformance(PdfWriter.java:3426)
at com.itextpdf.text.pdf.PdfWriter.checkPdfIsoConformance(PdfWriter.java:3422)
at com.itextpdf.text.pdf.PdfAnnotation.toPdf(PdfAnnotation.java:999)
at com.itextpdf.text.pdf.PdfIndirectObject.writeTo(PdfIndirectObject.java:158)
at com.itextpdf.text.pdf.PdfWriter$PdfBody.write(PdfWriter.java:420)
at com.itextpdf.text.pdf.PdfWriter$PdfBody.add(PdfWriter.java:398)
at com.itextpdf.text.pdf.PdfWriter$PdfBody.add(PdfWriter.java:373)
at com.itextpdf.text.pdf.PdfWriter$PdfBody.add(PdfWriter.java:369)
at com.itextpdf.text.pdf.PdfWriter.addToBody(PdfWriter.java:843)
at com.itextpdf.text.pdf.PdfStamperImp.addAnnotation(PdfStamperImp.java:1389)
at com.itextpdf.text.pdf.PdfStamperImp.addAnnotation(PdfStamperImp.java:1401)
at com.itextpdf.text.pdf.PdfSignatureAppearance.preClose(PdfSignatureAppearance.java:1283)
Заранее спасибо за любой ответ.
Привет, Александр! Действительно, мой вариант использования немного отличается. Я создал собственный PDFAStamper на основе iText PDFAStamper и добавил некоторые дополнительные функции, но для этого достаточно кода. Я использую метод preClose() для PDFSigantureAppearance, и есть проблема. Благодаря списку рассылки iText, я знаю, что мне нужно будет добавить человекообразное описание в поданной анонимности, рекомендацию спецификации PDF/A, а не требование. Я сейчас на пути к тому, как реализовать. –
Привет, Хосе! Таким образом, вы добавляете некоторую текстовую аннотацию в качестве понятного для пользователя описания для подписи, а затем получаете исключение «Аннотирование типа/виджета должно содержать ключ содержания». Правильно? Можете ли вы отправить часть кода, как добавить такую аннотацию? –
Нет, до того, как я не добавлял это описание аннотации. Теперь я пытаюсь добавить его, но мне нужно расширить PDFSiganutreAppearance и перезаписать метод preClose() и добавить следующую строку: sigField.put (PdfName.CONTENTS, новый PdfString («некоторый текст», PdfObject.TEXT_UNICODE)); –