使用iText7打开PDF时自动打开打印对话框

rat*_*lan 1 itext7

我使用iText7生成PDF,然后在新选项卡中打开它.

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/pdf"));
String filename = "C:\\temp\\first-output2.pdf";
headers.add("content-disposition", "inline;filename=" + filename);
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
Run Code Online (Sandbox Code Playgroud)

用户的意图总是打印,因此显示PDF并让他点击打印按钮是不方便的.这就是我想在PDF打开时立即打开打印对话框的原因.

这个解决方案不起作用

使用iText打开PDF时自动打开打印对话框

因为iText7中不存在PdfAction.PRINTDIALOG.

我也尝试了各种不起作用的JavaScript选项,比如

PdfAction action = PdfAction.createJavaScript("this.print(true);\\r"); 
Run Code Online (Sandbox Code Playgroud)

如何在页面加载后直接打开打印对话框?

Ale*_*ach 5

要在打开文档时打开打印对话框,您需要使用this.print(true);JavaScript代码.

您可以iText7通过以下方式添加此类操作:

PdfAction printAction = new PdfAction();
printAction.put(PdfName.S, PdfName.JavaScript);
printAction.put(PdfName.JS, new PdfString("this.print(true);\r"));
pdfDocument.getCatalog().setOpenAction(printAction);
Run Code Online (Sandbox Code Playgroud)