Я работаю с добавлением цифровой подписи в формате PDF с использованием JAVA. Я прошел через очень много API для этого. Но я не смог получить ни одного примера для добавления существующего файла pfx непосредственно в pdf.
Я пробовал с Apache PdfBox:
PDSignature signature = null;
File file = new File("path\\REPORT.pdf");
PDDocument doc=PDDocument.load(file);
FileInputStream pkcs12Stream = new FileInputStream ("path\\abc.pfx");
KeyStore store = KeyStore.getInstance("PKCS12");
store.load(pkcs12Stream, "pwd@123".toCharArray());
PDSignature sign=new PDSignature();
byte[] bytes = IOUtils.toByteArray(pkcs12Stream);
sign.setContents(bytes);
doc.addSignature(sign); // to add the signature in the pfx file.
FileOutputStream fos = new FileOutputStream("path\\REPORT_signed.pdf");
doc.saveIncremental(fos);
pkcs12Stream.close();
Теперь здесь я не получаю никаких исключений, но он генерирует сжатый подписанный файл, который не будет загружаться из-за нижеприведенного комментария.
doc.addSignature(sign);
Поскольку он не может конвертировать в байтах, это мое предположение.
Есть ли способ использовать существующий файл pfx и создать подписанный файл pdf.
Пожалуйста, предложите мне это.