Java如何使用pdf javascript关闭PDF?

时间:2013-04-15 14:02:30

标签: java pdf itext

我正在使用servlet将pdf流发送到浏览器。

当我向用户显示时,pdf必须打开打印对话框。 我使用iText api成功完成了这项工作。像这样:

stamper.setPageAction(PdfWriter.PAGE_OPEN, new PdfAction(PdfAction.PRINTDIALOG), 1);

现在我需要在打印后关闭pdf文件。我尝试过使用pdfactions,但我无法得到它。我试过的是:

writer.setAdditionalAction(PdfWriter.DID_PRINT, PdfAction.javaScript("app.execMenuItem('Close');", writer));

writer.setAdditionalAction(PdfWriter.DID_PRINT, PdfAction.javaScript("app.close();", writer));

我不一定需要使用pdfActions,但在用户将pdf发送到打印机后,我看不出如何获取它。

你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

app.execMenuItem('Close');app.close()不起作用的原因。这些方法旨在关闭独立​​版本的Adobe Reader / Acrobat。我想你是在浏览器中查看PDF,在这种情况下你使用Adobe Reader作为插件,Chrome的PDF查看器,Firefox中的pdf.js或任何其他PDF查看器。

问题#1:您需要从PDF文档关闭浏览器窗口。 PDF无法控制您的浏览器。假设他们会:这不是一个严重的安全问题吗?

问题#2:您将PDF嵌入HTML页面(例如使用<object>标记)和establish a communication between the JavaScript in the PDF and the JavaScript in the HTML。我已经在我的书中描述了如何做到这一点,但是:它不适用于所有操作系统上的所有浏览器。例如:Chrome的PDF查看器和Firefox的pdf.js将完全忽略您的命令。

您正在使用我们的iText库询问解决方案,但您要问的是任何软件都无法做到的事情。