最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to open print dialog after pdf generated? - Stack Overflow

programmeradmin3浏览0评论

I wrote some actions which generates dynamically PDF files. something like: reports/reportGenerator.action

when I call reports/reportGenerator?param=dialy it will open the generated pdf in a popup, and then I can press the print button to open the printer dialog and print it.

what I want to do now is to open the printer dialog directly. so when I call reports/reportGenerator?param=dialy and after the pdf file is fully generated, open the printer dialog. is that possible? (I know the printer dialog can not be skipped)

more info: action is something like this:

sout = response.getOutputStream();
response.setContentType("application/pdf");
response.setHeader("Content-disposition","inline; filename=\"myReport.pdf\"");
sout.write(pdfBytes);
sout.flush();
sout.close();

I wrote some actions which generates dynamically PDF files. something like: reports/reportGenerator.action

when I call reports/reportGenerator?param=dialy it will open the generated pdf in a popup, and then I can press the print button to open the printer dialog and print it.

what I want to do now is to open the printer dialog directly. so when I call reports/reportGenerator?param=dialy and after the pdf file is fully generated, open the printer dialog. is that possible? (I know the printer dialog can not be skipped)

more info: action is something like this:

sout = response.getOutputStream();
response.setContentType("application/pdf");
response.setHeader("Content-disposition","inline; filename=\"myReport.pdf\"");
sout.write(pdfBytes);
sout.flush();
sout.close();
Share Improve this question edited Feb 13, 2017 at 22:28 Roman C 1 asked Jan 4, 2012 at 20:07 YichzYichz 9,68110 gold badges60 silver badges98 bronze badges 7
  • 1 possible duplicate of Can a PDF file's print dialog be opened with Javascript? – Matt Ball Commented Jan 4, 2012 at 20:09
  • I already saw that question, the accepted answer says probably not, but many answers say yes, tested them but not working, is embed javascript the only way? – Yichz Commented Jan 4, 2012 at 20:15
  • Yes, JS must be embedded in the PDF for this to work. – Matt Ball Commented Jan 4, 2012 at 20:18
  • @Kossel You can use the java code to print. The sample: juixe./techknow/index.php/2008/01/17/…. Another tip: stackoverflow./questions/4694737/… – Alex K Commented Jan 5, 2012 at 11:05
  • Thanks Alex, but I have no problem generating pdfs. the problem is sending to printer :) – Yichz Commented Jan 5, 2012 at 17:58
 |  Show 2 more ments

3 Answers 3

Reset to default 8

Thanks to Alex K I found the answer:

according to JRPdfExporterParameter.html#PDF_JAVASCRIPT

you can use PDF_JAVASCRIPT property to add javascript to the pdf when you generate it.

so I added

JRPdfExporter exporter = new  JRPdfExporter();
exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT, "this.print();");

when exporting PDF and it worked

The solution is simple, add property to your jrxml file by clicking right on your jrxml in the iReport designer and press properties then press add :

Property name

net.sf.jasperreports.export.pdf.javascript

Property value

this.print({bUI: true,bSilent: true,bShrinkToFit: false});

This property will print automatically in the client side, I'd add it and it work perfectly.

Add this script in your loadView blade file (PDF blade file)

<script type="text/javascript"> try { this.print(); } catch (e) { window.onload = window.print; } </script>
发布评论

评论列表(0)

  1. 暂无评论