PDBox подписывает документ с помощью cmsSignatureJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PDBox подписывает документ с помощью cmsSignature

Сообщение Anonymous »

Я пытаюсь подписать PDF-документы с помощью PdfBox и cmsSignature.
Но мой код всегда возвращает PDF-файл с поврежденной подписью: «Документ был изменен или поврежден с момента его подписания»< /p>
Я использую PdfBox 2.0.29
Мне нужно, чтобы подпись была добавлена ​​в PDF-файл и чтобы подпись была действительна, не так ли? возможно?
public ResponseEntitysignPdf(@RequestParamStringpdfPath,@RequestParamStringcmsSignature64){
try{
//DecodeCMSsignaturefromBase64
byte[]cmsSignature=java.util.Base64.getDecoder().decode(cmsSignature64);

//LoadthePDFdocument
PathpdfFilePath=Path.of(pdfPath);
if(!Files.exists(pdfFilePath)){
returnResponseEntity.badRequest().body("PDFfilenotfoundat:"+pdfPath);
}

FileinputFile=pdfFilePath.toFile();
PDDocumentdocument=PDDocument.load(inputFile);

//Createanewsignature
PDSignaturesignature=newPDSignature();
signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);//MatchesiTextCMSfilter
signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);//MatchesiTextdetachedsignature
signature.setReason("QualifiedCertification");//MatchesiTextreason
signature.setLocation("");//MatchesiTextlocation
signature.setSignDate(Calendar.getInstance());//Setscurrenttimestamp(optional)
signature.setContents(newbyte[8192]);//Adjustsizeifneeded

//Addthesignaturefieldwithaspecificname
signature.setName("DetachedSignature");//MatchesiTextfieldname
document.addSignature(signature);

//Preparetheexternalsignature
ExternalSigningSupportexternalSigning=document.saveIncrementalForExternalSigning(newFileOutputStream(inputFile));

//WritethedetachedCMSsignaturetothePDF
externalSigning.setSignature(cmsSignature);

//Saveandclosethedocument
document.close();

returnResponseEntity.ok("PDFsignedsuccessfully:"+pdfFilePath.toString());
}catch(Exceptione){
e.printStackTrace();
returnResponseEntity.status(500).body("ErrorwhilesigningPDF:"+e.getMessage());
}
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... ssignature
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • PDBox подписывает документ с помощью cmsSignature
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • SyncFusion подписывает PDF-документ с отметкой времени из внешнего источника
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • SyncFusion подписывает PDF-документ с отметкой времени из внешнего источника
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • SyncFusion подписывает PDF-документ с отметкой времени из внешнего источника
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • SyncFusion подписывает PDF-документ с отметкой времени из внешнего источника
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»