所以,我正在尝试使用服务方法将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);
答案 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);