java - 如何使用用户密码以编程方式打开 PDF

标签 java pdf jasper-reports password-protection

这与我的 other question 有关...希望这个有解决方案。

要求是在浏览器中显示受密码保护的 PDF,但以编程方式传递用户密码。我使用 Jasper 创建 PDF 并设置用户密码如下:
exporter.setParameter(JRPdfExporterParameter.USER_PASSWORD, userPassword);

PDF 创建后,必须立即显示在屏幕上。在浏览器中显示时,不应提示用户输入密码,因此密码应由应用程序提供。但是,如果用户下载 PDF 然后尝试打开它,则应提示他输入密码.
[编辑]:我正在寻找一种不涉及许可工具的方法

最佳答案

您可以使用 PDF.JS 库打开受密码保护的 PDF。

PDFJS.getDocument({ url: pdf_url, password: pdf_password }).then(function(pdf_doc) {
    // success
}).catch(function(error) {
    // incorrect password

    // error is an object having 3 properties : name, message & code
});

我已经写了一篇关于它的博客文章,还包含一个演示。这是链接:http://usefulangle.com/post/22/pdfjs-tutorial-2-viewing-a-password-protected-pdf

关于java - 如何使用用户密码以编程方式打开 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14602102/

相关文章:

java - 在 jasper 报告中多次重复所有列

java - 为什么我的关系表会抛出 OutOfMemoryError?

java - 如何使用 JasperReports 将分页设置为在 X 行之后发生?

url 的 java 模式

java - 实现一个 kotlin 泛型函数,从复杂的 java 对象中检索特定字段

java - 构造函数未定义问题

java - 如何使用与 wars 相同的类加载器制作 tomcat 8 加载 jar ?

c# - ASP.NET MVC 上的 Rotativa HTML 转 PDF : how to create PDF as a landscape?

php - 将html网页转换为pdf页面(用户将下载的pdf文件)

pdf - PDF 文件是否有一个字段指定其编码?