THotPDF.AddLoadedSignedSignatureField Method

로드된 문서에 서명 준비가 된 서명 필드를 추가합니다. 이 필드는 /ByteRange와 /Contents 공간이 예약된 서명 사전을 담고 있으므로, 문서를 저장한 뒤 SignPDFWithPFX, PreparePDFForSigning, InsertSignatureHex으로 서명할 수 있습니다. BeginIncrementalUpdate와 함께 쓰면 이미 서명된 PDF에 두 번째 서명을 얹는 방식이 됩니다

선언

function AddLoadedSignedSignatureField(PageIndex: Integer; X1, Y1, X2, Y2: Single;
  const AFieldName: AnsiString; ContentsBytes: Integer = 8192;
  const SubFilter: AnsiString = 'adbe.pkcs7.detached';
  const Reason: AnsiString = ''; const Location: AnsiString = '';
  const ContactName: AnsiString = ''): Integer;

유닛

HPDFDoc

매개변수

이름목적
PageIndex서명 위젯을 표시할 로드된 페이지의 0 기반 인덱스
X1, Y1, X2, Y2PDF 사용자 공간에서의 위젯 사각형(단위는 point, 원점은 왼쪽 아래). 가로와 세로는 양수여야 합니다
AFieldName새 서명 필드의 이름. 비어 있으면 안 되고 문서에 이미 존재하는 이름이어도 안 됩니다
ContentsBytesCMS 서명을 위해 예약하는 바이트 수(16진수 자릿수로는 두 배로 기록됨). 인증서와 타임스탬프 토큰을 포함한 완전한 서명이 들어가야 합니다
SubFilter서명 형식. 예를 들어 adbe.pkcs7.detached 또는 ETSI.CAdES.detached
Reason, Location, ContactName서명 사전의 선택적 /Reason, /Location, /ContactInfo 항목

반환 값

새 폼 필드의 인덱스를 반환하고, PageIndex가 범위를 벗어나면 -1을 반환합니다

사용 참고 사항

예제

PDF := THotPDF.Create(nil);
try
  PDF.BeginIncrementalUpdate('Signed.pdf');
  PDF.AddLoadedSignedSignatureField(0, 300, 120, 500, 160, 'Approver', 8192,
    'adbe.pkcs7.detached', 'Approved');
  PDF.SaveIncrementalUpdate('Prepared.pdf');
finally
  PDF.Free;
end;
// Signs the reserved field; the first signature stays valid
THotPDF.SignPDFWithPFX('Prepared.pdf', 'SignedTwice.pdf', 'Signer.pfx', 'password');

관련 API