在浏览器中预览、下载pdf文件
浏览器直接打开pdf文件:
1 2 | const pdfWindow = window.open(url, '_blank' ); pdfWindow.print(); |
如果上面的代码是直接下载了pdf文件, 则可以改为:
window.open(api/dms/downloadViewFile + '?url=' + res, '_blank');
后端代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | @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; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通