【问题标题】:How to open print dialog after pdf generated?pdf生成后如何打开打印对话框?
【发布时间】:2012-01-04 20:07:10
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: javascript pdf jasper-reports


【解决方案1】:

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

根据JRPdfExporterParameter.html#PDF_JAVASCRIPT

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

所以我加了

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

当导出 PDF 并且它工作时

【讨论】:

  • 我在哪里添加此代码以及如何添加?能给我举个例子吗?
【解决方案2】:

解决方案很简单,通过在 iReport 设计器中单击您的 jrxml 并按属性然后按添加,将属性添加到您的 jrxml 文件:

属性名称

net.sf.jasperreports.export.pdf.javascript

财产价值

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

这个属性会在客户端自动打印出来,我加一下就完美了。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-22
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 2017-11-27
      • 1970-01-01
      相关资源
      最近更新 更多