我们有一个应用程序可以创建不使用 jasperreports 的 PDF。
它还在创建后使用 iText 操作所述 PDF。
我们最近开始在某些 PDF 上使用加密。这意味着在应用程序在创建 PDF 后可以处理 PDF 之前,必须对其进行解密。尝试使用 iText 这样做时PdfReader(String path, byte[] password)
,出现以下异常:
java.lang.VerifyError: class org.bouncycastle.asn1.ASN1Primitive overrides final method equals.(Ljava/lang/Object;)Z
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at com.simontuffs.onejar.JarClassLoader.defineClass(JarClassLoader.java:561)
at com.simontuffs.onejar.JarClassLoader.findClass(JarClassLoader.java:475)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.itextpdf.text.pdf.PdfEncryption.<init>(PdfEncryption.java:148)
at com.itextpdf.text.pdf.PdfReader.readDecryptedDocObj(PdfReader.java:914)
at com.itextpdf.text.pdf.PdfReader.readDocObj(PdfReader.java:1294)
at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:643)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:187)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:212)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:202)
该项目使用 Maven 构建为可运行的 .jar,并使用以下依赖项:
iText 5.4.2
bouncycastle 1.48
我应该提到 jasperreports 有自己的 iText 和 bouncycastle 依赖项:
iText 2.1.7
bouncycastle 1.38
我不知道发生了什么事,需要帮助。