2012-01-04 169 views
3

我寫了一些動態生成動態PDF文件。例如:reports/reportGenerator.action如何在pdf生成後打開打印對話框?

當我打電話給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(); 
+1

[可以用Javascript打開PDF文件的打印對話框?]可能的重複項(http://stackoverflow.com/questions/687675/can-a-pdf-files-print-dialog-be-opened-with- javascript) – 2012-01-04 20:09:09

+0

我已經看到了這個問題,接受的答案可能不是,但許多答案說是,測試它們但不工作,是嵌入JavaScript的唯一方法? – Kossel 2012-01-04 20:15:23

+0

是的,必須將JS嵌入到PDF中才能正常工作。 – 2012-01-04 20:18:52

回答

8

感謝Alex KI找到了答案:

根據

JRPdfExporterParameter.html#PDF_JAVASCRIPT

當您生成它時,您可以使用PDF_JAVASCRIPT屬性將javascript添加到pdf中。

,所以我說

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

導出PDF時,它的工作

+0

我在哪裏添加此代碼以及如何?你能舉個例子嗎? – 2017-11-23 07:52:07

2

解決方法很簡單,通過點擊就在您的jrxml在iReport的設計師,然後按屬性,然後按添加屬性,您jrxml文件添加:

屬性名

net.sf.jasperreports.export.pdf.javascript 

屬性值

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

此屬性將在客戶端自動打印,我想補充它,它完美地工作。

相關問題