У меня проблема с использованием iTextPdf в приложении WEB Context.Почему PDF, отредактированный с помощью iTextPDF, поврежден в контексте Web Servlet?
У меня есть веб-сервлет, который загружает PDF после того, как я отредактировал его во время выполнения.
Если я называю метод, подготовить PDF в контексте применении в NON-WEB, Ф создаются совершенно и открывается без каких-либо проблем.
Но в приложении WEB-Context, файл создается, но когда я делаю загрузку с моей тестовой страницы он поврежден: когда я открываю загруженный файл, это без изображений и появляется сообщение об ошибке шрифт, который не найден.
Если я открываю «чистый» файла и «испорченного» файла с помощью текстового редактора, они имеют одинаковое количество строк, но на самом деле содержание появляется другим.
Таким образом, я подозреваю, что проблема заключается в рендеринг содержимого контента в веб-ответе или что-то подобное.
Я следовал этой документации: http://developers.itextpdf.com/examples/itext-action-second-edition/chapter-9
Это реализация контроллера Spring MVC:
@RequestMapping(path = "/downloadPDF", method = RequestMethod.GET)
public void downloadPDF(HttpServletResponse response){
try{
response.setContentType("application/pdf;charset=UTF-8");
ByteArrayOutputStream baos = myPDFHandler.getPdf('filetest.pdf');
OutputStream outputStream = response.getOutputStream();
baos.writeTo(outputStream);
outputStream.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
Эти заголовки ответа:
Response Headers
view source
Cache-Control:no-store
Cache-Control:no-cache
Content-Type:application/pdf;charset=UTF-8
Date:Tue, 24 May 2016 10:20:56 GMT
Expires:Thu, 01 Jan 1970 00:00:00 GMT
Pragma:no-cache
Server:Apache-Coyote/1.1
Strict-Transport-Security:max-age=31536000 ; includeSubDomains
Transfer-Encoding:chunked
X-Content-Type-Options:nosniff
X-Frame-Options:DENY
X-XSS-Protection:1; mode=block
Проблема заключается не в " myPDFHandler.getPdf ", потому что в контексте NON-WEB он работает отлично.
Любая идея? Спасибо.
Действительно ли это файл UTF-8? –
Я пробовал с charset = UTF-8 и без него, но результат тот же. Когда я пытаюсь в контексте не-WEB, мне не нужно указывать его ... –
'charset = UTF-8' там не так. Было сказано, можете ли вы поделиться PDF-файлом, как только браузер получит его и один раз, как хранится на сервере? – mkl