Получение ниже исключения при чтении PDF. Он хорошо открывается в читателе Acrobat. Я прочитал в другом вопросе, что, хотя его открыть в acrobat, его не нужно открывать через iText, потому что PDF содержит ошибку, и он рекомендует исправить PDF. Но файл поступает от клиента, и они могут открыть Acrobat, так что либо я должен его исправить, либо показать ошибку или предупреждение в Acrobat.
com.itextpdf.text.exceptions.InvalidPdfException: Rebuild failed: Error reading string at file pointer 10891; Original message: Error reading string at file pointer 10891
at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:655)
Выдержка из файла PDF
%PDF-1.1
1 0 obj
<<
/Creator (Developer 2000)
/CreatorDate (
/Author (Oracle Reports)
/Producer (Oracle PDF driver)
/Title (con5010I412014141258.pdf)
>>
endobj
3 0 obj
<<
/Type /Pages
/Kids 4 0 R
/Count 5 0 R
>>
endobj
7 0 obj
<</Length 8 0 R>>
stream
BT
Это действительно недопустимый PDF. Когда я открываю PDF в текстовом редакторе, я заметил, что заголовок имеет CreatorDate с закрытой скобкой. Я просто добавил закрытую скобку с допустимой датой, подобной этой CreatorDate (05 ноября 2014 г. 17:50:24), после чего она работает. Я попросил клиента исправить на их стороне
Редактируйте PDF в текстовом редакторе (блокнот, notepad++ и т.д.) И просто добавьте закрывающую скобку.
Итак, следующая строка:
/CreatorDate (
Изменения в:
/CreatorDate()