Javascript 如何打印PDF文件?
我需要在浏览器打印对话框中打开PDF文件。这段代码返回PDF,但当我在浏览器中单击href时,文件保存在磁盘上。我怎样才能改变它Javascript 如何打印PDF文件?,javascript,spring,pdf,Javascript,Spring,Pdf,我需要在浏览器打印对话框中打开PDF文件。这段代码返回PDF,但当我在浏览器中单击href时,文件保存在磁盘上。我怎样才能改变它 @RequestMapping(value = "/task/{taskId}/file", method = RequestMethod.GET, produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) @ResponseBody public CompletableFuture<
@RequestMapping(value = "/task/{taskId}/file", method = RequestMethod.GET, produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@ResponseBody
public CompletableFuture<ResponseEntity<?>> getTaskFile(@PathVariable Long taskId) {
final String login = SecureUtil.usernameFromSecureContext();
return CompletableFuture.supplyAsync(() -> {
Optional<Task> taskOpt = taskService.findOne(taskId, login);
if (!taskOpt.isPresent()) {
return ResponseEntity.notFound().build();
}
taskOpt.map((task) -> TaskUtil.getFileId(task).map(ls -> ls.stream().findFirst().get()).get());
Task task = taskOpt.get();
Optional<List<String>> fileIdOpts = TaskUtil.getFileId(task);
if (!fileIdOpts.isPresent()) {
return ResponseEntity.notFound().build();
}
String filePath = fileIdOpts.map(ls -> ls.stream().findFirst().get()).get();
FileSystemResource fsr = new FileSystemResource(filePath);
HttpHeaders headers = new HttpHeaders();
String fileName = getFileNamePrefix(task.getAnchor()) + task.getId();
headers.setContentType(new MediaType("application", "pdf"));
headers.setContentDispositionFormData("attachment", fileName + ".pdf");
return ResponseEntity.ok().headers(headers).body(fsr);
}, executorService);
}
@RequestMapping(value=“/task/{taskId}/file”,method=RequestMethod.GET,products=MediaType.APPLICATION\u OCTET\u STREAM\u value)
@应答器
公共完整的未来你不能。如果用户愿意,则由用户自行打印。你不能强迫人们从浏览器打印东西。这将是一个巨大的安全问题,如果任何一个网站可以打印它想要的任何东西,可能是你不能复制的。如果用户愿意,则由用户自行打印。你不能强迫人们从浏览器打印东西。如果任何网站都能打印出它想要的任何内容,这将是一个巨大的安全问题