Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 生成pdf后如何打开打印对话框?_Javascript_Pdf_Jasper Reports - Fatal编程技术网

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

Javascript 生成pdf后如何打开打印对话框?,javascript,pdf,jasper-reports,Javascript,Pdf,Jasper Reports,我写了一些动态生成PDF文件的动作。类似于:reports/reportGenerator.action 当我调用reports/reportGenerator?param=dialy时,它将在弹出窗口中打开生成的pdf,然后我可以按打印按钮打开打印机对话框并打印它 我现在要做的是直接打开打印机对话框。因此,当我在pdf文件完全生成后调用reports/reportGenerator?param=dialy和时,请打开打印机对话框。可能吗?(我知道无法跳过打印机对话框) 更多信息: 行动是这样的

我写了一些动态生成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();

多亏了Alex K,我找到了答案:

您可以使用
PDF\u JAVASCRIPT
属性在生成PDF时将JAVASCRIPT添加到PDF中

所以我补充说

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

导出PDF并使其工作时

解决方案很简单,右键单击iReport designer中的
jrxml
将属性添加到
jrxml
文件中,然后按属性,然后按添加:

属性名称

net.sf.jasperreports.export.pdf.javascript
this.print({bUI: true,bSilent: true,bShrinkToFit: false});
属性值

net.sf.jasperreports.export.pdf.javascript
this.print({bUI: true,bSilent: true,bShrinkToFit: false});

此属性将在客户端自动打印,我将添加它,它将完美工作。

在loadView刀片文件(PDF刀片文件)中添加此脚本

试试{this.print();}catch(e){window.onload=window.print;}

可能重复我已经看到的问题,公认的答案说可能不是,但许多答案说是的,测试过但不起作用,嵌入javascript是唯一的方法吗?是的,JS必须嵌入到PDF中才能起作用。@Kossel您可以使用java代码打印。示例:。另一个提示:谢谢Alex,但是我生成PDF没有问题。问题是发送到打印机:)在哪里添加此代码以及如何添加?你能给我举个例子吗?