com.itextpdf.text.exceptions.InvalidPdfException: перестроить не удалось: ошибка чтения строки в указателе файла

1

Получение ниже исключения при чтении 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
  1. Есть ли способ показать клиенту, что PDF имеет ошибку? либо через Acrobat, либо какое-то другое программное обеспечение, а скорее исключение Java.
  2. Есть ли способ обойти эту ошибку и продолжить? Мы столкнулись с аналогичными проблемами для защищенного PDF файла, и мы разблокировали. Пожалуйста, предложите
  • 0
    Если возможно, пожалуйста, поделитесь PDF. Если нет, то поделитесь хотя бы небольшим смещением звука, кроме 10891.
  • 0
    Извините, это конфиденциально. Есть ли в любом случае, чтобы компенсировать?
Показать ещё 5 комментариев
Теги:
pdf
itext

2 ответа

4
Лучший ответ

Это действительно недопустимый PDF. Когда я открываю PDF в текстовом редакторе, я заметил, что заголовок имеет CreatorDate с закрытой скобкой. Я просто добавил закрытую скобку с допустимой датой, подобной этой CreatorDate (05 ноября 2014 г. 17:50:24), после чего она работает. Я попросил клиента исправить на их стороне

  • 0
    обнаружена та же проблема в моем случае, а также. Спасибо :)
0

Редактируйте PDF в текстовом редакторе (блокнот, notepad++ и т.д.) И просто добавьте закрывающую скобку.

Итак, следующая строка:
/CreatorDate (

Изменения в:
/CreatorDate()

  • 0
    «Редактирование» PDF в текстовом редакторе чаще всего приводит к повреждению PDF-файлов.
  • 0
    Не обязательно. Старые инструменты Oracle (Developer 2000) создавали PDF-файлы с искаженной строкой "/ CreatorDate (" в PDF-файле. Я лично использовал notepad ++ для редактирования тысяч PDF-файлов, чтобы решить эту проблему.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню