2016-07-29 19 views
0

を実行している間、私は以下のコードとJaseReportsに一括エクスポートを行っており、同じに引き続き:JasperReport:バッチエクスポート

JRExporter e = new JRPdfExporter(); 
e.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrints); 
e.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, outStream); 
response.setContentType("application/pdf"); 
response.setHeader("Content-Disposition", "attachment; filename=test.pdf"); 
e.exportReport(); 

それが正常にエクスポートされますが、別のページに各「マージされたPDF」。 私はそれぞれのページを連続して別々のページにはないようにしたいと思います。助言がありますか?

答えて

1

ページレイアウトを維持したいので、あなたがすることができないではないUSS isIgnorePagination="true"(それはレイアウトを続けて作成)、アフィクはJRPdfExporterに何の設定は、単一のJasperPrintのようindividualeページを考慮しないためにそこにあります。あなたが持っている

解決策は以下のとおりです。

  1. メインレポート新しいjrxmlを作成し、サブレポートなど、この中にあなたの.jasperが含まれます。これは、メインレポートのjrxmlでページ区切りを制御できるかどうかです。

  2. 彼らは、現在のページ上にあるか、新しいページに追加すべきか否かを決定する、単一JasperPrintにすべてのコンポーネントを移動し、コード内のJasperPrint年代のあなたのリストを精巧、この方法は、私が強く最初に提案し、かなり複雑です方法。

ところで:あなたは非推奨のコードを使用している、コードの現在のバージョンは

JRExporter e = new JRPdfExporter(); 
exporter.setExporterInput(SimpleExporterInput.getInstance(jasperPrints)); 
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outStrem)); 
SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration(); 
configuration.setMetadataAuthor("n1ckgun"); // set you configs 
exporter.setConfiguration(configuration); 
response.setContentType("application/pdf"); 
response.setHeader("Content-Disposition", "attachment; filename=test.pdf"); 
exporter.exportReport(); 
+0

isIgnorePagination =「真」は、残念ながらすべての違いを生むことはないはずです。それでもスペースジャスパーは、別のページに各マージされたレポートを表示します。スペースがある限り、同じページで続行する新しいマージ済みジャンパーです。 – n1ckgun

+0

@ n1ckgun pdfでページレイアウトを続けるのが好きですか?どんなページに終わるのかを制御しようと思うのですか?、まだページがありますか? –

+0

私はどのページに終わるかを制御したい。 それぞれにテーブルが含まれているジャスパープリントが複数あります。エクスポートすると、マージされた各ジャンパーは別々のページに表示されますが、同じページで継続するスペースがあります。最初のジャスパープリントがエクスポートされた後、2番目のページは次のページに移動しないでください。最初のジャスパーの同じページから続行してください。 – n1ckgun

関連する問題