在浏览器中预览、下载pdf文件
浏览器直接打开pdf文件:
const pdfWindow = window.open(url, '_blank'); pdfWindow.print();
如果上面的代码是直接下载了pdf文件, 则可以改为:
window.open(api/dms/downloadViewFile + '?url=' + res, '_blank');
后端代码:
@GetMapping(value = "/downloadViewFile") public @ResponseBody ResponseEntity<Resource> downloadViewFile(@RequestParam("url") String url) { logger.debug("url: {}", url); String contentType = "application/pdf"; ResponseEntity<byte[]> bytes = ResponseEntity.ok().body(null);; try { bytes = new RestTemplate().getForEntity(url, byte[].class); } catch (Exception e) { url = url.replace("https","http"); bytes = new RestTemplate().getForEntity(url, byte[].class); } ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(Objects.requireNonNull(bytes.getBody())); ResponseEntity<Resource> res= ResponseEntity.ok().contentType(MediaType.parseMediaType(contentType)) .header(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=\"" + "tu.pdf" + "\"").body(new InputStreamResource(byteArrayInputStream)); return res; }