我想显示一个pdf文件,而不保存服务器上的文件我已经保存了genrete pdf的数组字节,当我试图在页面中显示它是这样的
xœÕZIk,7¾ûWÌ9
G[·$f=ä0ärË9ò.ùû©E%•Zín¿áñfì^¤Z¿úªdófO½üy2'?Myzs§ì[:}ùåå‡oNð=ø÷å·—ëûË4Ã<üþóéÛ§=Ywzÿõdz±Ë|6Îx–Ww6ÓóbÏ&š´¼¦³Éæb®xá¶Èý;~8—×x6ò<ÈK8“
9 \ 2>']¡OH Fμ|%,?½÷OXU〜SÚÙ¼ù•'ÖY\5Án'B¶Á¢DvÆ}l¤ÏdÜÈx™I]-WzôJwoËT.Ùû'^ AEA&GT;èû²/S~ß|μLOgœμÎ9؃÷zT值#F°/ ž€”ObÝÝ-¼{¦¯L–Ñ{kÎÙŽ!=ƒY)xMV¤þÆ{xo(îb) r×Û-M¸ÂVßS^RðÕÕ+%H9LEãƒqqï'÷®lÚ»v]qoIr¯-à[I¿;‰〜öìý¾Åb²Áua!ïÕ¾JN¶ 燕麦| P:äl¤³l6ë½}”,~HÉO(!ç¬rìÞTöb&LT;Ú^ B \ƒ|~Z^u¼åÿ3ÏWOeñßMRX²tß³q)•
这是我的代码
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
response.reset();
ServletOutputStream os = response.getOutputStream();
response.setContentType("application/pdf"); // fill in
response.setContentLength(this.currentDocument.getContenu().length);
String pdfName="Test";
response.setHeader("Content-Disposition", "attachment; filename=\"" + pdfName + "\"");
os.write(this.currentDocument.getContenu()); // fill in bytes
os.flush();
os.close();
context.responseComplete();
答案 0 :(得分:0)
这种情况最有可能发生,因为您正在使用ajax操作来触发PDF生成。在响应
中正确呈现PDF需要完整的HTTP请求确保您没有使用像<p:commandButton/>
这样的ajax按钮来触发操作。
使用
<p:commandButton ajax="false"/>
OR
<h:commandButton/>