Java 如何使用 pdf javascript 关闭 PDF?

标签 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 发送到打印机后如何获取它。

你有什么想法吗?

最佳答案

app.execMenuItem('Close');是有原因的和app.close()不工作。这些方法旨在关闭独立​​版本的 Adob​​e Reader/Acrobat。我猜您正在浏览器中查看 PDF,在这种情况下您会使用 Adob​​e 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 库的解决方案,但您正在询问任何软件都无法完成的事情。

关于Java 如何使用 pdf javascript 关闭 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16017205/

相关文章:

javascript - 自动下载的优雅解决方案

asp.net - 使用 itext (itextsharp) 替换一个 PDF 模板页面上的多个不同图像

java - 使用 Java 中的 iText 将 CCITT Group 3 一维 TIFF 转换为 PDF

java - 在 Android 应用程序中播放视频时出错

java - keyPressed 方法不工作 Java

java - 在 For 循环中添加特定选择的数字以计算出总乘数 Java

r - 根据 R 中的页面拆分 PDF

javascript - 如何在不更改其 css 布局的情况下将 html/css 表单转换为 pdf?

java - itext- 无法使用另一个 USB token 签署 pdf

java - 删除两个列表共有的内容