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();
}
このようなコードを使用して、JasperアプリケーションからPDF文書をエクスポートしています。Internet ExplorerでのPDF書き出し印刷
ライン
exporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT,
"this.print({bUI: true,bSilent: false,bShrinkToFit: true});");
プリンタに直接PDF文書を送信するためにJavaScriptを追加します。
予想される動作は、印刷ダイアログボックスにPDFドキュメントのプレビューが表示されることです。
これは、ほとんどの時間を正常に動作します - 私は、Internet Explorer 8とFirefoxのすべての5~6回のうち1程度の問題を抱えてい除き。
何が起こるか - PDFドキュメントの印刷プレビューダイアログが表示されないか、プレビューウィンドウに空白のドキュメントが表示されます。
-I'veは、これらが助けていないようでしたような
response.setContentType("application/pdf");
response.setHeader("Content-disposition","inline; filename=\""
+ reportName
+ "\"");
response.setContentLength(baos.size());
を異なるレスポンスヘッダを設定しようとしたexporter.setParameter
-I've経由this.print()
に異なるのparams(異なるのJavaScriptの数を試してみました
これはIEとFFの問題のようですが、誰もこの問題を処理したことがありますか?100%すべてのブラウザで動作するようにする必要があります。プリンタ、またはブラウザを介して動作するサードパーティのライブラリですか?
この文書はAcrobatで読むことができますか? –
はい、私たちはexporter.setParameterコメントアウト場合(JRPdfExporterParameter.PDF_JAVASCRIPTを、 "this.print({BUI:偽、bShrinkToFit::、bSilent真真});"); PDFファイルの添付ファイルとしてダウンロードすることができます。これはすべてのブラウザで正常に動作します。 – user619804
このrifソフトウェアとは何ですか?それはジャスパーの報告書で動作するのでしょうか、それともジャスパーの代用品ですか? – user619804