I have tried to unlock pdf reader but still got bad user password
Exception in thread "main" com.lowagie.text.exceptions.BadPasswordException: Bad user password
at com.lowagie.text.pdf.PdfReader.readPdf(PdfReader.java:611)
at com.lowagie.text.pdf.PdfReader.<init>(PdfReader.java:214)
at com.lowagie.text.pdf.PdfReader.<init>(PdfReader.java:198)
Here the code
public class Test {
public static void main(String[] args) throws IOException {
List<String> test = new ArrayList<>();
File path = new File("encryptPdf.pdf");
byte[] byteArr = fileToByteArray(path);
PdfReader pdfReader = new PdfReader(byteArr);
pdfReader = unlockPdf(pdfReader1);
}
public static byte[] fileToByteArray(File file) throws IOException {
FileInputStream fl = new FileInputStream(file);
byte[] arr = new byte[(int)file.length()];
fl.read(arr);
fl.close();
return arr;
}
public static PdfReader unlockPdf(PdfReader reader) {
if (reader == null) {
return reader;
}
try {
Field f = reader.getClass().getDeclaredField("encrypted");
f.setAccessible(true);
f.set(reader, false);
} catch (Exception e) {
System.out.println("exception");
}
return reader;
}
}
I am using opendpdf library version 1.0.5 (https://github.com/LibrePDF/OpenPDF)
Environment : Java 11
I tried above code for unencrypted pdf its working as expected but for encrypted pdf keep showing above error even thought i have set accessible to true
Anyone is facing similar problem ? any suggestion to fix this issue ?