pdf生成后如何打开打印对话框?

时间:2012-01-04 20:07:10

标签: javascript pdf jasper-reports

我写了一些生成动态PDF文件的动作。类似于:reports / reportGenerator.action

当我拨打reports/reportGenerator?param=dialy时,它会在弹出窗口中打开生成的pdf,然后我可以按打印按钮打开打印机对话框并打印出来。

我现在要做的是直接打开打印机对话框。所以当我在完全生成pdf文件后调用reports/reportGenerator?param=dialy 时,打开打印机对话框。那可能吗? (我知道不能跳过打印机对话框)

更多信息: 行动是这样的:

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

3 个答案:

答案 0 :(得分:7)

感谢Alex K,我找到了答案:

根据JRPdfExporterParameter.html#PDF_JAVASCRIPT

您可以使用PDF_JAVASCRIPT属性在生成时将javascript添加到pdf中。

所以我添加了

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

导出PDF时有效

答案 1 :(得分:2)

解决方案很简单,只需在iReport设计器中的jrxml上单击鼠标右键,然后按属性,然后按添加:

,即可为jrxml文件添加属性

属性名称

net.sf.jasperreports.export.pdf.javascript

物业价值

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

此属性将在客户端自动打印,我添加它并且它可以正常工作。

答案 2 :(得分:0)

将此脚本添加到您的loadView刀片文件(PDF刀片文件)

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