Требование - обрабатывать пакет PDF по одному за раз и при успешном шифровании каждого из них с помощью пароля пользователя.
Однако эти PDF файлы ранее были зашифрованы случайным образом созданным динамическим паролем владельца (не знаю никому), чтобы предотвратить любые изменения.
Я использую iText для шифрования, как показано ниже:
byte[] userPass = "user".getBytes();
byte[] ownerPass = "owner".getBytes();
PdfReader reader = new PdfReader("Misc.pdf");
PdfStamper stamper = new PdfStamper(reader,
new FileOutputStream("Processed_Encrypted.pdf"));
stamper.setEncryption(userPass, ownerPass,
PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128
| PdfWriter.DO_NOT_ENCRYPT_METADATA);
stamper.close();
reader.close();
Но этот код вызывает com.itextpdf.text.exceptions.BadPasswordException: PdfReader not opened with owner password
Может ли какое-нибудь руководство по разрешению этого пароля ошибки/обхода владельца?
Здесь я хотел бы пояснить, что мы юридически владеем этими PDF файлами, поэтому преступление/хакинг не совершается.
P.S.. Решение не ограничивается iText, может использовать любую другую библиотеку Java (бесплатно или лицензировано).