在Spring引导中打开网页上的Pdf文件


@GetMapping(value = "/pdf",produces= MediaType.APPLICATION_PDF_VALUE)
public ResponseEntity<InputStreamResource> getTermsConditions() throws Exception {
String filePath = "C:\";
String fileName = "PDF.pdf";
File file = new File(filePath+fileName);
HttpHeaders headers = new HttpHeaders();
//        headers.add("content-disposition", "inline;filename=" +fileName);
headers.add("Content-Disposition", "attachment; filename=" + fileName);
InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
return ResponseEntity.ok()
.headers(headers)
.contentLength(file.length())
.contentType(MediaType.parseMediaType("application/pdf"))
.body(resource);
}

打开文件,但格式不正确。

����6 0 obj<lt/类型/ExtGState/BM/Normal/ca 1>gt;endobj 7 0 obj<lt/类型/ExtGState/BM/Normal/CA1>gt;endobj 10 0 obj<lt/过滤器/扁平ecode/长度156465/长度eP}��&֓�����

请帮我。我想在类似浏览器的在线图书馆中打开书籍pdf

使用值"附件";对于响应报头";内容处置";将下载PDF。而不是在新选项卡中显示。

值";内联";对于响应报头";内容处置";将在浏览器的新选项卡中打开PDF。

例如:

v1

headers.add("Content-Disposition", "inline;filename=PDF.pdf");

v2

headers.add(HttpHeaders.CONTENT_DISPOSITION, "inline;filename=PDF.pdf");

您可以查看:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition

最新更新