使用BIRT保存关于数据库的pdf报告

时间:2017-05-03 10:38:38

标签: java hibernate reporting birt

所以,我正在尝试使用服务方法将pdf报告保存在数据库中。我看到有一种方法可以通过调用:pdfOptions.setOutputStream(output)来指定生成的报告的输出。但是我如何以这种方式调用我的保存方法呢?

我看到了这个post,但我在坚持点上堆叠

我赞成任何建议

    PDFRenderOption pdfOptions = new PDFRenderOption(options);
    pdfOptions.setOutputFormat(FORMAT_PDF);
    pdfOptions.setOption(IPDFRenderOption.PAGE_OVERFLOW, IPDFRenderOption.OUTPUT_TO_MULTIPLE_PAGES);
    pdfOptions.setOutputStream(response.getOutputStream());//opens report on browser
    runAndRenderTask.setRenderOption(pdfOptions);

1 个答案:

答案 0 :(得分:1)

您正在使用

将输出直接流式传输到客户端
pdfOptions.setOutputStream(response.getOutputStream());//opens report on browser

如果这样做,您的输出将被消耗,您将无法将其保存到数据库中。

我会使用“tee”方法,你知道,有一个输入流和两个输出流。

你可以自己写,我们只使用像Apache TeeOutputStream这样的东西。

这可能是这样的:

OutputStream blobOutputStream = ...; // for writing to the DB as BLOB.
OutputStream teeStream = TeeOutputStream(response.getOutputStream(), blobOutputStream);
pdfOptions.setOutputStream(teeStream);