Javascript 生成pdf后如何打开打印对话框?
我写了一些动态生成PDF文件的动作。类似于:reports/reportGenerator.action 当我调用Javascript 生成pdf后如何打开打印对话框?,javascript,pdf,jasper-reports,Javascript,Pdf,Jasper Reports,我写了一些动态生成PDF文件的动作。类似于:reports/reportGenerator.action 当我调用reports/reportGenerator?param=dialy时,它将在弹出窗口中打开生成的pdf,然后我可以按打印按钮打开打印机对话框并打印它 我现在要做的是直接打开打印机对话框。因此,当我在pdf文件完全生成后调用reports/reportGenerator?param=dialy和时,请打开打印机对话框。可能吗?(我知道无法跳过打印机对话框) 更多信息: 行动是这样的
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没有问题。问题是发送到打印机:)在哪里添加此代码以及如何添加?你能给我举个例子吗?