これは非常に抽象的な質問です。
多くの請求書の印刷を継続的に処理する必要がある Spring MVC Web アプリケーションに取り組んでいます。現在、請求書が保存されると、スプリング コントローラは請求書 ID を jasper pdf 生成サービスに委任し、pdf を準備します。PDF がダウンロードされた後、ユーザーは手動でそれを印刷します。
ユーザーが請求書を保存するときに、請求書をサイレント モードで印刷する方法が必要です。
何か案は?
これは非常に抽象的な質問です。
多くの請求書の印刷を継続的に処理する必要がある Spring MVC Web アプリケーションに取り組んでいます。現在、請求書が保存されると、スプリング コントローラは請求書 ID を jasper pdf 生成サービスに委任し、pdf を準備します。PDF がダウンロードされた後、ユーザーは手動でそれを印刷します。
ユーザーが請求書を保存するときに、請求書をサイレント モードで印刷する方法が必要です。
何か案は?
PDFにエクスポートしているので可能です。値を持つインスタンスにJRPdfExporterParameter.PDF_JAVASCRIPT
パラメーターを追加する必要があります。例えば:JRPdfExporter
"this.print({bUI: true,bSilent: false,bShrinkToFit: true});"
protected static byte[] exportReportToPdf(JasperPrint jasperPrint) throws JRException{
JRPdfExporter exporter = new JRPdfExporter();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);
exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT, "this.print({bUI: true,bSilent: false,bShrinkToFit: true});");
exporter.exportReport();
return baos.toByteArray();
}
これにより、実際に JavaScript が PDF に追加されます。PDF を開くと実行され、印刷キューに送信されます。ユーザーに対して自動的にこれを行うことは一般に良いとは考えられていないため、これは慎重に使用する必要があることに注意してください。アプリで使用したときは、レポートごとにボタンを付ける必要がありました。Export
JavaScript を含まないボタンと、JavaScript を含むボタンPrint
。そうすれば、印刷したいユーザーはそうするでしょうし、デジタルコピーを望むユーザーもそれを持っていました.