HPDFWriteHeadlessSignatureReservation
선택적 THPDFHeadlessSignatureMetadata 값은 Unicode Reason, Location, ContactInfo, Name 항목이 됩니다. 같은 StringEncoder가 바이트를 쓰기 전에 필드 잠금 이름과 메타데이터 모두에 적용됩니다
function HPDFWriteHeadlessSignatureReservation(Target: TStream;
ObjectNumber, Generation, ReservedCMSBytes, MaxObjectBytes: Integer;
CAdES: Boolean = False; CertificationPermission: Integer = 0;
CatalogObjectNumber: Integer = 0; CatalogGeneration: Integer = 0;
FieldLock: PHPDFHeadlessFieldLock = nil;
StringEncoder: THPDFHeadlessPolicyStringEncoder = nil;
StringEncoderContext: Pointer = nil;
Metadata: PHPDFHeadlessSignatureMetadata = nil;
DocumentTimestamp: Boolean = False): THPDFHeadlessSignatureReservation;
고정 수치 ByteRange 슬롯과 0으로 채운 16진수 Contents 예약을 갖춘 실제 간접 서명 사전을 씁니다
출력 스트림은 호출자가 소유하며 양의 객체 번호, 0~65535 세대, 양의 DER 예약, 객체 바이트 예산을 공급해야 합니다
함수는 예약을 쓰거나 할당하기 전에 완전한 사전 크기를 검사하고 16진수 페이로드를 bounded 청크로 채웁니다
ETSI.CAdES.detached에는 CAdES=true로 하세요. 기본값은 adbe.pkcs7.detached를 씁니다
유효한 Catalog 참조와 1~3 certification 권한을 공급하면 DocMDP 변환을 발행합니다. 선택적 필드 잠금은 같은 Reference 배열에 실제 FieldMDP 변환을 발행합니다
필드 잠금 이름은 검증되어 예약 쓰기 전에 UTF-16BE PDF 문자열로 인코딩됩니다. 암호화 저수준 호출자는 평문 바이트를 받아 암호화된 문자열 바이트를 돌려주는 StringEncoder 콜백을 공급합니다
콜백은 예약 바이트를 쓰기 전에 실행되고 인코딩 확장은 객체 예산에 반영됩니다. THPDFHeadlessDocument는 인증된 문서 암호화 컨텍스트를 자동 공급합니다
반환된 객체 오프셋을 공유 xref 라이터에 등록하고 객체를 서명 필드에 연결한 뒤, HPDFFinalizeHeadlessSignatureReservation을 호출하기 전에 PDF 트레일러를 마무리하세요
스테이징과 발행은 저수준 호출자 책임입니다. THPDFHeadlessDocument.SignToFile은 소스 보호, 암호화 보존, 예산, 원자적 파일 발행을 제공합니다
DocumentTimestamp=true는 approval 프로필 대신 DocTimeStamp/ETSI.RFC3161을 쓰고 certification·필드 잠금 변환 참조를 금지합니다. 마무리는 HPDFFinalizeHeadlessDocumentTimestampReservation으로 하세요