2017-05-03 47 views
0

因此,我试图使用服务方法将pdf报告保存在数据库中。我看到有一种方法可以通过调用:pdfOptions.setOutputStream(output)来指定生成的报告的输出。但是,我怎么能这样称呼我的保存方法?使用BIRT保存pdf数据库报告

我看到这个post但我在坚持点

我apreciate

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

您直接流输出到客户端

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);