在浏览器中预览、下载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;
	}

  

 

posted @ 2022-11-22 09:23  zhoudingzhao  阅读(1363)  评论(0编辑  收藏  举报