0

我正在从事医院前台 ADF 项目,在这里我需要生成访问单,这些不需要打印预览。我想在没有任何打印对话框的情况下打印单据,也不需要弹出窗口。我尝试了很多在网上找到的东西,但没有任何可靠的结果。在 Jasper 报告上尝试了 this.print,通过 Java 尝试了同样的方法,但我得到了对话框。我正在使用 Intranet,因此安全方面不在讨论范围内,那么我该如何进行这项工作?

4

3 回答 3

0

我能够执行静默打印,我使用弹出窗口调用 servlet,该 servlet 生成所需的访问单并在弹出窗口上显示相同的内容。对于我使用的无声打印

                exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT, "this.print({bUI: false,bSilent: false,bShrinkToFit: true,printParams:this.getPrintParams().constants.interactionLevel.silent});this.close();");

我不得不对 IE 进行一些更改,我将我的 url 添加到 IE 中的受信任站点选项中。我在 acrobat 中启用了 js,并将 acrobat 指向 IE 中的受信任站点。这解决了静默打印,但遇到了另一个问题。

打印完成后我无法关闭窗口..我试过这个..

            "var win = window.open('PrintPopUp.jsf','_blank',\"height=300,width=200,scrollbars=no," +
        "status=no, resizable=no, screenx=0, screeny=0\");win.onclick=function(){setTimeout(function(){win.close();\n},9000);}

但它在 IE 11 中不起作用..有什么建议吗?

于 2015-09-09T09:55:33.990 回答
0

这是一个建议而不是答案,但在获得 50 点声誉之前我无法发表评论(感谢您的热烈欢迎,StackOverflow!) - 也许其中一个会有所帮助:

1)使用 java 打印 html 文件而不向用户显示打印对话框

2)在这个例子中我将如何抑制打印对话框?

于 2015-09-06T17:13:40.783 回答
0

好吧,我找到了一种方法来做到这一点..

JRPdfExporter exporter = new JRPdfExporter();
        exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT,
                              "var pp = this.getPrintParams();pp.interactive=pp.constants.interactionLevel.silent;pp.NumCopies=1; this.disclosed= true ;this.print({bUI: false,bSilent: false,bShrinkToFit: true,printParams:pp});");

这会将 pdf javascript 添加到生成的 pdf 中。一旦 pdf 显示在弹出页面上,它就会执行静默打印。希望这对将来的人有所帮助。

于 2015-09-16T07:58:42.037 回答