实际上,我有这个功能,我有一个框架,我设置了URL(ip:port/birt/preview?__report=report.rptdesign&__format=pdf¶meters...
),该框架呈现PDF文件。
但我想隐藏这个网址......
我需要返回一个带有Spring MVC的PDF文件,但该PDF是由另一个应用程序生成的。
这意味着我得到了另一个应用程序(Eclipse Birt Engine),我通过URL(ip:port/birt/preview?__report=report.rptdesign&__format=pdf¶meters...
)传递参数并生成PDF文件,我需要从我的控制器获取该PDF并将其返回给Spring MVC。有人可以帮忙吗?
答案 0 :(得分:11)
如下所示:
@Controller
@RequestMapping("/generateReport.do")
public class ReportController
@RequestMapping(method = RequestMethod.POST)
public void generateReport(HttpServletResponse response) throws Exception {
byte[] data = //read PDF as byte stream
streamReport(response, data, "my_report.pdf"));
}
protected void streamReport(HttpServletResponse response, byte[] data, String name)
throws IOException {
response.setContentType("application/pdf");
response.setHeader("Content-disposition", "attachment; filename=" + name);
response.setContentLength(data.length);
response.getOutputStream().write(data);
response.getOutputStream().flush();
}
}
答案 1 :(得分:0)
PDF内容只是字节,因此您只需将PDF内容字节写入HttpResponse输出流即可。