gpt4 book ai didi

java - 受密码保护的 PDF Jaspersoft

转载 作者:行者123 更新时间:2023-12-02 12:07:19 30 4
gpt4 key购买 nike

我正在尝试使用 JasperReports 和 Java 生成受密码保护的 PDF 文件。

代码如下:

jrPdfExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, path.concat(filename).concat(".pdf"));
jrPdfExporter.setParameter(JRExporterParameter.JASPER_PRINT, jprint);
jrPdfExporter.setParameter(JRPdfExporterParameter.OWNER_PASSWORD, "Bancosol123");
jrPdfExporter.setParameter(JRPdfExporterParameter.USER_PASSWORD, "Bancosol123");
jrPdfExporter.setParameter(JRPdfExporterParameter.IS_ENCRYPTED, Boolean.TRUE);
jrPdfExporter.exportReport();

我使用 iText 2.1.7 生成 PDF,它工作正常,但是当我包含密码部分时,出现错误

Caused by: java.lang.ClassNotFoundException: org.bouncycastle.asn1.DEREncodable

我包含了以下两个 jar :

  • bcprov-jdk15on-1.47.jar
  • bcmail-jdk15on-1.47.jar

但是问题还是没有解决。我在某处读到这可能是 iText 2.1.7 的兼容性问题

所以我删除了 iText 2.1.7 并包含了 iText 5.3.2

现在我有以下错误

exception in thread "awt-eventqueue-0" java.lang.noclassdeffounderror: com/lowagie/text/documentexception

最佳答案

JasperReports PDF 生成基于 iText 2.1.7(至少是当前版本,有一些 JR 版本使用 5.x 版本,但由于某种原因此更改已恢复),实际上甚至是其稍微修补的变体。

因此,您很可能希望继续使用 5.0.0 之前的 iText 版本。

现在您应该意识到,那些旧的 iText 版本是针对同样旧的 BouncyCaSTLe 版本进行编程的:JR iText 2.1.7 变体中的 Maven 依赖信息表明使用了 BouncyCaSTLe 1.38。

这也解释了原来的错误消息,BC 1.38 和 1.47 之间存在实质性变化,特别是 1.47 版本本身是 BC API 的重大变化。

所以你应该尝试使用旧的 BC 版本,最好是 1.38。

关于java - 受密码保护的 PDF Jaspersoft,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46806329/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com