我正在尝试使用以下方法为 PDF 设置密码保护:
- JRE7
- iText 版本 5.2.1
- bcprov jdk16 1.46
- bctsp jdk16 1.46
- bcmail jdk16 1.40
我遇到以下问题:
无法读取
PdfReader
、PdfStamper
和PdfWriter
类。如果我将 iText 的版本更改为 5.3.2,那么之前的问题就会得到解决,但在执行时我会收到此错误:
ClassNotFound org/bouncycastle/asn1/ANS1Encodable
提前致谢。
最佳答案
您需要确保所有 jar 都兼容。正如您在 pom.xml
中看到的那样,iText 5.3.2 预计 BouncyCaSTLe 1.47。我之前写过 1.49,这是一个错字。
<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.47</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.47</version>
<optional>true</optional>
</dependency>
...
</dependencies>
您必须 download BouncyCaSTLe jar 的正确版本并将它们包含在您的项目中。如果您无法下载正确的版本,那么您的问题就无法解决。没有其他办法可以解决这个问题。
关于java - iText 兼容性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40905635/