인증 서명과 필드 잠금

HotPDF는 인증 서명과 서명된 필드 잠금에 첨부된 PDF 권한 구조를 작성한 다음 로드된 문서에서 동일한 구조를 검사할 수 있습니다

생산자 API

procedure AddCertificationSignatureField(
  const FieldName: AnsiString;
  Rectangle: TRect;
  Permission: THPDFDocMDPPermission;
  ContentsBytes: Integer = 8192;
  const SubFilter: AnsiString = 'adbe.pkcs7.detached';
  const Reason: AnsiString = '';
  const Location: AnsiString = '';
  const ContactName: AnsiString = '';
  Flags: THPDFFormFieldFlags = []);

procedure ConfigureCertificationSignature(
  const FieldName: AnsiString;
  Permission: THPDFDocMDPPermission);

procedure AttachSignatureFieldLock(
  const FieldName: AnsiString;
  Action: THPDFFieldLockAction;
  const Fields: array of AnsiString);

AddCertificationSignatureField는 서명된 자리 표시자 생성과 인증 구성을 결합합니다

ConfigureCertificationSignature는 기존에 작성된 서명 자리 표시자용이며 해당 필드가 서명 사전을 가진 첫 번째 필드여야 합니다

문서에는 하나의 인증 서명만 포함될 수 있으므로 두 번째 구성 요청은 객체 그래프가 변경되기 전에 거부됩니다

이 API는 PDF 1.5 출력을 자동으로 협상합니다

DocMDP 권한 수준

인증 권한
dmpNoChanges인증 후 변경이 허용되지 않습니다
dmpFormFillAndSign양식 작성, 템플릿 인스턴스화 및 서명이 허용됩니다
dmpFormFillSignAndAnnotate앞의 변경 사항에 주석 생성, 삭제 및 수정이 허용됩니다

dmpNone은 DocMDP 변환이 없는 검사 결과용으로 예약되며 생산자 메서드에 의해 거부됩니다

필드 잠금 범위

Fields 인수서명 후 효과
flaAll비어 있어야 합니다모든 양식 필드를 잠급니다
flaInclude하나 이상의 고유 필드 이름나열된 필드만 잠급니다
flaExclude하나 이상의 고유 필드 이름나열된 필드를 제외한 모든 필드를 잠급니다

AttachSignatureFieldLock은 빈 이름, 중복 이름, 잘못된 액션 값, 호환되지 않는 Fields 모양, 서명되지 않은 대상 필드 또는 이미 잠금이나 FieldMDP 정책을 가진 필드를 거부합니다

내보낸 구조

Delphi 예제

var
  LockedFields: THPDFAnsiStringArray;
begin
  HotPDF.CurrentPage.AddTextField(
    'InternalCode', '', Rect(40, 80, 220, 108));
  HotPDF.CurrentPage.AddCertificationSignatureField(
    'CertSig', Rect(40, 140, 260, 190),
    dmpFormFillAndSign, 8192,
    'adbe.pkcs7.detached', 'Document approval');
  SetLength(LockedFields, 1);
  LockedFields[0] := 'InternalCode';
  HotPDF.CurrentPage.AttachSignatureFieldLock(
    'CertSig', flaInclude, LockedFields);
end;

로드된 검사

function GetLoadedSignaturePermissions(
  SigIndex: Integer;
  out Info: THPDFSignaturePermissionInfo): Boolean;

판독기는 DocMDP 권한, Catalog 연결, SigFieldLock 범위, FieldMDP 범위, 필드 이름, 구조적 유효성 및 진단 문제 문자열을 보고합니다

필수 직접 및 간접 객체 모양을 검증하고 Catalog /Perms /DocMDP가 동일한 서명 사전을 대상으로 하는지 확인합니다

SigFieldLock과 FieldMDP가 모두 존재하면 해당 액션과 필드 목록이 일치해야 합니다

판독기는 제한된 사전 및 배열 검사를 수행하며 JavaScript, 액션 또는 서명 내용을 실행하지 않습니다

검증 경계

GetLoadedSignaturePermissions는 정책 구조만 보고합니다

VerifyLoadedSignature는 계속해서 암호화 무결성을 별도로 보고합니다

어느 메서드도 보고된 DocMDP 또는 FieldMDP 권한을 모든 후속 증분 개정이 준수한다고 주장하지 않습니다, 왜냐하면 그것은 개정별 의미 변경 분석을 필요로 하기 때문입니다

성능

생산자 검증은 작성된 AcroForm 필드와 작은 서명 참조 배열만 스캔하며, 로드된 검사는 선택된 서명, 그 잠금, 그 참조 및 Catalog 권한 항목만 읽습니다

페이지 내용, 이미지 스트림, 글꼴 프로그램 또는 관련 없는 간접 객체는 디코딩되지 않습니다

참고 항목