В нашем приложении у нас есть функциональные возможности для просмотра / загрузки файлов PDF
Ниже приведен код, используемый для загрузки и отображения в браузере
> while ((readLength = bufInputStream.read(buffer)) != -1) {
outStream.write(buffer, 0, readLength);
}
}
, недавно мы наблюдали, как всплывающее окно типа "Произошла ошибкаОткрытие этого документа. Файл поврежден и не может быть восстановлен. "
когда мы проверяли содержимое хороших и плохих pdf
good.pdf
начинается с "% PDF-1.6" и заканчивается на "%% EOF"
bad.pdf
начинается с «NULNULNULNUL% PDF-1.6»
заканчивается на «506053»
Когда мы проверяли с помощью Original PDF,который был передан в потоковом режиме, имеет правильный заголовок
Если мы буферизуем и пишем, как эти символы добавляются в заголовок ???
03 июн 2018
Есть ли у васпроверил данные из вашего bufInputStream?
нам нужно распечатать данные?или как проверить данные?
Вы проверили, что происходит с данными, записанными в ваш outStream?
нам нужно распечатать данные?или как проверить данные?
Я погуглил и получил некоторую информацию, как показано ниже
1.Если вы видите, что плохой PDF заканчивается, %% EOF отсутствует.Возможно, это связано с тем, что в последнем цикле не происходит outstream.write (пожалуйста, исправьте меня)
2.Недавно хост, который внес некоторые графические изменения в содержимое PDF, и после этого эта проблема началась
3.old PDF-файлы работают нормальнобез каких-либо проблем, только проблема с новыми PDF-файлами
4. Мы обслуживаем эту функцию для различных клиентов, и только эти новые PDF-файлы становятся проблемой (с win10 + IE11) + (win7 + IE11)
4. Любой параметр просмотраили плагин Acrobat решит эту проблему?
5.Что может быть причиной добавления / удаления этих символов?
4 июня 2018
кажется, что %% EOF в конце отсутствует - основная причина проблемы.Мы получили плохой / поврежденный файл из приложения и вручную добавили %% EOF в конце, чтобы решить проблему.Теперь пара вопросов
- как это работало раньше?
- когда добавлен заголовок NUL NUL, почему %% EOF не добавляется к потоковым данным?
- есть ли настройка, которую мы можем автоматически добавлять %% EOF к потоковым данным?
- для этого нужно изменить код?
- есть ли какие-либо настройки Acrobat или веб-сферы или браузера для решения этой проблемы?
11 июня
Мы сделали изменение кода, чтобы добавить %% EOF в пропущенные PDF-файлы (временное решение).
Мы пытаемся напечатать то, что идет через сеть ..
Мы видели, что NULNUL идет, но ПРИНИМАЮТ, что они не отправляют ..
у нас есть Балансировщики нагрузки, другие компоненты в сетевом канале
Мы получили старые файлы PDF из cacheServer и видели эти символы долгое время
Проблема началась с PDF1.6версия.