【发布时间】:2019-06-14 08:06:48
【问题描述】:
在服务器端使用 iText 生成不同类型的 pdf 文件并通过 ResponsOutputStream 发送。在客户端,显示打印对话框(至少在大多数查看器上),并选择默认打印机。一些 pdf 应该在 labelprinter 上打印,其他的应该在 desktopprinter 上打印。打印对话框出现时是否可以预先选择不同的打印机?
我已经为桌面 Java 应用程序尝试过这个,它可以工作,但我无法从服务器端执行此操作。
ec.setResponseContentType("application/pdf");
ec.setResponseHeader("Content-Disposition", "attachment; filename="labels.pdf");
outStream = ec.getResponseOutputStream();
writer = PdfWriter.getInstance(document, outStream);
PdfAction action = new PdfAction(PdfAction.PRINTDIALOG);
writer.setOpenAction(action);
使用此指令的结果相同,因为我没有找到使用 Javascript 预选特定打印机的解决方案
writer.setOpenAction(PdfAction.javaScript("this.print(true);", writer));
始终选择默认打印机或上次使用的打印机
【问题讨论】:
-
您是否尝试过使用
print方法的printParams参数并将其中的printerName属性设置为客户端打印机名称?参照。 Adobe Acrobat SDK JavaScript™ for Acrobat® API Reference. -
TX 很多,这很有魅力
-
太棒了!我将此作为实际答案,而不仅仅是评论;您可以点击投票箭头下方左上角的勾号来接受它。
标签: java printing itext printdialog