iText совместимость с PDF 1.6 - PullRequest
       22

iText совместимость с PDF 1.6

0 голосов
/ 20 сентября 2018

Я обнаружил, что получил ошибку, если попытался открыть существующий файл PDF 1.6 с iText (версия 5.1.1).Если я преобразую этот же PDF-файл в 1.5, я смогу его прочитать.

Я пытался выяснить, с какой версии iText PDF 1.6 обрабатываются, но не могу найти информацию.Любая идея?Thx!

Редактировать: здесь стек:

Caused by: java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1OctetString
    at com.itextpdf.text.pdf.PdfEncryption.<init>(PdfEncryption.java:147)
    at com.itextpdf.text.pdf.PdfReader.readDecryptedDocObj(PdfReader.java:775)
    at com.itextpdf.text.pdf.PdfReader.readDocObj(PdfReader.java:1152)
    at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:512)
    at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:172)

Ошибка при выполнении строки:

final PdfReader reader = new PdfReader(file.getAbsolutePath());

1 Ответ

0 голосов
/ 20 сентября 2018

Ваш вопрос вводит в заблуждение, потому что вы делаете ложное утверждение.Вы утверждаете, что используемая вами версия iText не поддерживает PDF 1.6.

. Однако сообщение об ошибке, добавленное вами в отредактированной версии вашего вопроса, показывает реальную причину:

Caused by: java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1OctetString

Я открыл PDF-файл, которым вы поделились в комментарии в Acrobat Reader, и вот что я увидел:

enter image description here

Вы можете четко прочитать:

Метод безопасности документа ограничивает то, что можно сделать с документом.Чтобы снять ограничения безопасности, установите для параметра «Метод безопасности» значение «Без защиты».

Это именно то, что вы делали, когда конвертировали исходный PDF, совместимый с PDF 1.6, в документ, совместимый с PDF 1.5.Если бы вы сняли ограничения безопасности и сохранили файл как документ PDF 1.6, проблема бы не возникла.

При этом говорится.Вам не нужно снимать ограничения безопасности.Вы можете решить java.lang.NoClassDefFoundError, добавив правильную версию библиотеки BouncyCastle к вашему CLASSPATH.Возможно, вам придется изменить unethicalreading переменную на true, как описано здесь: Как читать PDF-файлы, созданные с неизвестным паролем случайного владельца?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...