在实际应用中有这么一个场景,用户希望在页面上有一个下载按钮,点击按钮时把当前页的内容生产一个PDF文件下载下来。
这个需求有两种表现形式,一种是当用户点击按钮时直接在浏览器中弹出保存框下载PDF文件,另一种是返回PDF的视图,在浏览器中预览PDF文件的内容,然后再下载。
这里分别介绍两种实现方式:
一、直接下载PDF文件
本质上来说,把PDF文件读取到inputStream中,继而放入返回的的实体中。
返回的ResponseEntity中,注意指定Content-Type的内容为application/pdf,
且Content-Disposition的内容为attachment; filename="helloWorld.pdf"
@RequestMapping(value = "/pdfDownload", method = GET)
public ResponseEntity download() throws IOException {
File file = new File("HelloWorld.pdf");
InputStream in = new FileInputStream(file);
final HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/pdf");
headers.add("Content-Disposition", "attachment; filename=" + fi