Я использую приведенный ниже код для загрузки значения поля в формате PDF в формате jsf.
Хотя я могу скачать PDF-файл, но не могу его открыть. Он показывает "не могу открыть pdf".
Что-то не так с кодировкой (пытался указать UTF-8 в getbytes (), но это тоже не сработало.)?
public StreamedContent getGeneratePdf() throws IOException {
final PortletResponse portletResponse = (PortletResponse) FacesContext.getCurrentInstance().getExternalContext()
.getResponse();
final HttpServletResponse res = PortalUtil.getHttpServletResponse(portletResponse);
res.setContentType("application/pdf");
res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
res.setHeader("Content-Disposition", "attachment; filename=\"letter.pdf\"");
res.setHeader("Refresh", "1");
res.flushBuffer();
OutputStream output = res.getOutputStream();
byte[] out=null;
out=this.getNotes().getBytes();
output.write(out);
output.flush();
output.close();
return null;
}
notes - это свойство типа string, которое заполняется из пользовательского интерфейса.
Спасибо, Джаспер. Что-нибудь с этим сделаю.




Строка! = PDF. Сначала вам нужно создать PDF-документ. Только установка типа контента не поможет.