0

xml ファイルが既に作成されており、サーブレット経由で送信される PDF としてレンダリングされています。

TraxInputHandler input = new TraxInputHandler(
   new File(XML_LOCATION+xmlFile+".xml"),
   new File(XSLT_LOCATION)
);
ByteArrayOutputStream out = new ByteArrayOutputStream();

//driver is just `new Driver()`
synchronized (driver) {
  driver.reset();
  driver.setRenderer(Driver.RENDER_PDF);
  driver.setOutputStream(out);
  input.run(driver);
}

//response is HttpServletResponse
byte[] content = out.toByteArray();
response.setContentType("application/pdf");
response.setContentLength(content.length);
response.getOutputStream().write(content);
response.getOutputStream().flush();

これはすべて完全に正常に機能しています。

ただし、出力に含める必要がある別の PDF ファイルがあります。.pdfこれは私が与えられた完全に別のファイルです。このファイルを応答、ドライバー、outまたはクライアントへの応答に含める他のものに追加する方法はありますか? それはうまくいきますか?または、他に何かする必要がありますか?

4

1 に答える 1

2

また、FOP を使用していくつかのドキュメントを生成し、アップロードされたドキュメントを受け入れ、それらすべてを最終的に 1 つの PDF に結合します。

組み合わせた結果には適切な PDF ファイル ヘッダー、メタデータなどが必要なため、それらをストリームから順番に送信することはできません。

iText ライブラリを使用してファイルを結合します。

PdfReader reader = new PdfReader(/*String*/fileName);
reader.consolidateNamedDestinations();

後で、ブックマーク/ページ番号を調整しながら、各 pdf から新しい結合先 pdf にページを追加することをループします。

私の知る限り、FOP はこの種の機能を提供していません。

于 2012-08-24T00:44:25.597 に答える