THPDFWindowsFormDataTransaction

HPDFWindowsFormData는 현재 THotPDF 그래프에서 네이티브 인증 FDF/XFDF 엔진까지의 Windows 브리지를 제공합니다

선언

constructor Create(Document: THotPDF; OriginalSource: TStream;
  const Password: AnsiString; const Limits: THPDFWindowsFormDataLimits;
  Checkpoint: TNotifyEvent = nil);
procedure SetSignaturePolicyOptions(const Options: THPDFHeadlessCMSOptions);
function ExportData(Format: THPDFHeadlessFormDataFormat;
  const Options: THPDFHeadlessFormDataOptions): TBytes;
procedure ImportData(const Bytes: TBytes; Format: THPDFHeadlessFormDataFormat;
  const Fonts: THPDFHeadlessRichTextFonts;
  const AppearanceOptions: THPDFHeadlessTextAppearanceOptions;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
procedure ImportDataWithFamilies(const Bytes: TBytes;
  Format: THPDFHeadlessFormDataFormat; const Families: THPDFHeadlessRichTextFontFamilies;
  const AppearanceOptions: THPDFHeadlessTextAppearanceOptions;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
procedure FillTypedData(const Updates: THPDFHeadlessRichTextFieldUpdates;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
function ExportAnnotations(const Options: THPDFHeadlessXFDFOptions;
  out Bytes: SysUtils.TBytes): THPDFHeadlessXFDFExportResult;
procedure ImportAnnotations(const Bytes: SysUtils.TBytes;
  const Options: THPDFHeadlessXFDFOptions; const Password: AnsiString);
property ChangedAnnotations: Integer;
function PreparedFieldCount: Integer;
procedure GetPreparedField(Index: Integer; out Name, Value: UnicodeString;
  out FieldType: Integer);
procedure WritePreparedPDF(Destination: TStream);
procedure TakeCandidate(out Document: THotPDF;
  out Source: THPDFWindowsFormDataSource);
property ChangedFields: Integer;
property CancellationToken: THPDFCancellationToken;

소유권과 정책

Document, OriginalSource, Checkpoint는 파괴될 때까지 빌려 씁니다. OriginalSource는 문서가 로드한 원본 리비전과 정확히 일치해야 합니다. 생성자는 전용 원본 소스를 복사해 봉인하고 AES 자격 증명을 인증한 뒤, 다른 전용 소스에 실제 대기 그래프를 준비합니다

네이티브 엔진은 기존 서명 무결성과 ESS 인증서 바인딩, DocMDP 권한, FieldMDP 잠금, field 읽기 전용 플래그를 검사합니다. 허용된 P2/P3 갱신은 원본 서명 바이트를 유지하면서 진짜 appearance를 다시 만듭니다

필수 신뢰, 타임스탬프, 서명된 폐기 검사는 SetSignaturePolicyOptions로 설정할 수 있습니다. 평범한 무결성 검사가 특정되지 않은 비즈니스 루트에 대한 신뢰를 뜻하지는 않습니다

ImportData는 후보 PDF 하나와 별도로 로드한 THotPDF 하나를 준비하며 빌려 준 문서를 바꾸지 않습니다. 의미상 변하지 않은 임포트라도 정확한 현재 리비전을 복사하기 전에 서명된 정책을 인증합니다

WritePreparedPDF는 유한한 후보 바이트를 공급된 스트림에 복사합니다. TakeCandidate 전에 필요한 PDF와 결과 콜백을 모두 성공적으로 발행하세요. 실패나 취소는 트랜잭션을 버린다는 뜻입니다

TakeCandidate는 THotPDF와 그 THPDFWindowsFormDataSource의 소유권을 넘깁니다. 소스를 파괴하기 전에 문서를 파괴하세요. 후보는 트랜잭션의 취소 token을 붙잡지 않습니다

THPDFWindowsFormDataSource는 독점 생성된 임시 파일을 소유합니다. Seal은 파일을 플러시하고 읽기 전용으로 다시 엽니다. 파괴는 파일을 닫고 지웁니다. 소스 콜백은 소유한 소스보다 오래 살지 않습니다

ExportAnnotations와 ImportAnnotations는 매핑된 주석 XFDF 교환을 구현합니다. ChangedAnnotations는 덧붙인 수를 보고하며 ChangedFields와 같은 준비 변경 카운터를 씁니다

한도

FillTypedData는 RV 디코딩 왕복 없이 섞인 스칼라 field와 원본 타입화된 리치 run을 같은 후보에 준비합니다. 준비 field 접근자는 실제 결과 후보를 읽습니다

ImportDataWithFamilies는 실제 스타일 프로그램과 동일한 인증 후보 수명 주기로 이름 붙은 패밀리 1~16개를 고릅니다. 원래 ImportData 메서드는 단일 패밀리 동작을 유지합니다

THPDFWindowsFormDataLimits.Default는 MaxWorkingBytes를 256 MiB, MaxOutputBytes를 128 MiB, MaxObjects를 100000, MaxPages를 10000으로 둡니다. 작업 용량은 최소 1 MiB여야 하고 다른 용량은 모두 양수여야 합니다

CancellationToken은 빌려 쓰는 것이며 트랜잭션 파괴까지 유효합니다. 네이티브 파싱, 리치 XML 디코딩, 정책 검증, 복사 중에 원본 문서의 연산 token과 Checkpoint를 폴링합니다

이 Windows 클래스는 최신 Delphi, C++Builder, Windows FPC에서 쓸 수 있습니다. 네이티브 Linux는 THPDFHeadlessDocument를 직접 씁니다

관련 주제

Windows FDF/XFDF 교환, 현재 그래프 준비, 네이티브 폼 데이터

FDF 주석 그래프

ExportAnnotationsFDF는 주석 수를 반환하고 유계 바이너리 FDF를 Bytes에 씁니다. ImportAnnotationsFDF는 THPDFFDFOptions으로 후보를 준비합니다

FDF 프로파일은 공급된 appearance 리소스와 공유 간접 객체를 유지합니다. 같은 페이지의 일치하는 NM 값이 교체할 기존 주석을 고릅니다

FDF 메서드는 같은 빌린 문서 소유권, 인증된 정책, 준비된 후보 수명 주기를 씁니다. ChangedAnnotations는 실제 교체와 추가를 세고, 동등한 가져오기는 정확한 현재 리비전을 유지합니다

주석 제거

RemoveAnnotations는 같은 후보 수명 주기를 통해 의존 팝업과 답글을 포함한 정확한 페이지와 NM 제거를 준비합니다. ChangedAnnotations는 모든 제거를 한 번씩 보고합니다

TakeCandidate 전에 PDF와 결과 데이터를 게시하세요. 실패는 빌린 문서와 소스를 그대로 둡니다