public void print() {
Document document = new Document(PageSize.A4);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try {
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", String.format(ATTACHMENT, "-normal"));
PdfWriter pdfWriter = PdfWriter.getInstance(document, byteArrayOutputStream);
document.open();
BaseFont baseFont = BaseFont.createFont(BaseFont.TIMES_ROMAN, ISO_8859_9, true);
BaseFont baseBoldFont = BaseFont.createFont(BaseFont.TIMES_BOLD, ISO_8859_9, true);
Font font11 = new Font(baseFont, 11);
document.add(new Paragraph(seciliListeElemani.getOgrno() + " " +
seciliListeElemani.getAd() + " " + seciliListeElemani.getSoyad() + " Mezun Olabilir!!!!", font11));
document.close();
response.setContentLength(byteArrayOutputStream.size());
ServletOutputStream servletOutputStream = response.getOutputStream();
byteArrayOutputStream.writeTo(servletOutputStream);
byteArrayOutputStream.flush();
FacesContext.getCurrentInstance().responseComplete();
} catch (DocumentException e) {
throw new OrgunException(e.getMessage());
} catch (IOException e) {
throw new OrgunException(e.getMessage());
}
}
我写了这段代码来打印pdf文件。当我单击我的Web应用程序上的按钮时,没有任何反应。没有错误消息。我调试时看起来方法成功完成了。但只是等待和等待没有pdf没有下载。有什么建议吗?
答案 0 :(得分:1)
我的猜测是某些输出流或编写者需要调用awk -F, '{ $3=substr($3,1,2)"/"substr($3,3,2)"/"substr($3,5) }1' OFS=',' file
。
我建议您将不同的问题分开,以便您可以更轻松地调试它们并缩小问题范围。例如。使servlet的生成独立于servlets / Faces。无论如何,这是一个很好的编程实践。
答案 1 :(得分:0)
我解决了我的问题。这是xhtml方面。
<p:commandButton value="print" actionListener="#{bean.print}"
rendered="#{bean.seciliListeElemani.durum_id==5}"></p:commandButton>
我添加了
ajax="false"
它有效。