简体   繁体   English

将PDF文件显示到JSF PAGE中

[英]Display PDF File into JSF PAGE

I want to display a pdf file without save the file on the server i have saved the generete pdf in array byte when i trie to display in the page it come like this 我想显示pdf文件而不在服务器上保存文件,但我想在页面中显示时将Generete 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›']¡õh ¸fµ|%,?½÷òxù~SÚÙ¼ù•´ÖY\\5Án´B¶Á¢DvÆ}l¤ÏdÜÈx™î]–WzôJwoËT.Ùû'?^ÀËÁ>èû²/S˜ß¦µLOgœµÎ9؃÷zT#f°/Z€”ObÝÝ-¼{‹k']šñ‡¥\\°f™ãÙMä‚Ì·yG7;ôî†fÒ¾ôLvÉzxÄî?aÓ[^ëÁr.;Pq*{=xÅ+]_ðÕ*?Œ;ã#w1‡Š2z;²i´ÄÄ¡ä‹ø%À2 ŒO[?fÆD µ2èêxIV¹EKò-XbÁ÷M ¦¯L– Ñ{kÎÙŽ!=ƒY)xMV¤þÆ{xo(îb r×Û– M¸ÂVßS^RðÕÕ+%H9LEãƒqqï´÷®lÚ»v]qoIr¯–à[I¿;‰˜öìý¾Åb?²Áua!ïÕ¾áJN¶ ¨ôAt|p:äl¤³l6ë½}'‚˜HÉO(ç¬rìÞTöb<Ú^!b\\ƒ¦˜Z^u?¼åÿ3ÏWOeñßMRX²tß?³q)• xœÕZIk,7?¾ûWÌ9G 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›']¡hh ¸fµ |%,?½÷òxù〜SÚÙ¼ù•´ÖYY \\ 5Án´B¶Á¢DvÆ}läÏdÜÈx™” –WzôJwoËT.Ùû'?^ÀËÁ>èû²/ S〜ßμLOgœµÎ9؃÷zT#f°/ Z€”ObÝÝ-¼{¼k‹]šñ‡¥ \\°f™ÙMä‚Ì·yG7;?îfÒ¾ôLvÉzxÄî?aÓ[^ëÁr。; Pq * {=xÅ+] _ðÕ*?Œ;ã#w1‡Š2z; ²i´ÄÄÄ​%% 2ŒO[? fÆDμ2èêxIV¹EKò-XBA÷中号¦¯L– N {kÎÙŽ!=ƒY)xMV¤þÆ{XO(IB R×U-M¸ÂVßS^RðÕÕ+%H9LEãƒqqï'÷®lÚ»v]qoIr¯-à[I¿ ;‰?öýý¾Åb?²Áua!ïÕ¾áJNJ¶?At | p:äl¤³l6ë½}',〜HÉO(ç¬rìÞTöb<Ú^!b \\ ƒ¦〜Z ^ u?¼åÿ3ÏWOeñßMRX²tß?³q)•

this is my code 这是我的代码

 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();  

It's happening most likely because you're using an ajax action to fire the PDF generation. 这很可能是因为您正在使用ajax操作来触发PDF生成。 A full-on HTTP request is required to properly render the PDF in the response 需要完整的HTTP请求才能正确呈现响应中的PDF

Make sure you're not using an ajax button like <p:commandButton/> to fire the action. 确保没有使用<p:commandButton/>类的ajax按钮来触发操作。

Use either 使用任一

<p:commandButton ajax="false"/>

OR 要么

<h:commandButton/>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM