THPDFWindowsFormDataTransaction

HPDFWindowsFormData 提供从当前 THotPDF 图到原生认证 FDF/XFDF 引擎的 Windows 桥接

Declarations

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 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 锁和字段只读标志;允许的 P2/P3 更新重新生成真实外观,同时保留原始签名字节

必需的信任、时间戳和签名吊销检查可通过 SetSignaturePolicyOptions 配置;普通完整性检查并不意味着信任某个未指定的业务根

ImportData 准备一个候选 PDF 和一个单独加载的 THotPDF;它不修改被借用的文档;语义上无变化的导入仍会在复制精确当前修订之前认证签名策略

WritePreparedPDF 把有界的候选字节复制到给定流;TakeCandidate 之前必须成功发布全部必需的 PDF 与 result 回调;失败或取消意味着丢弃事务

TakeCandidate 转移 THotPDF 及其 THPDFWindowsFormDataSource 的所有权;先销毁文档再销毁其源;候选不保留事务的取消令牌

THPDFWindowsFormDataSource 持有独占创建的临时文件;Seal 刷新它并以只读方式重新打开;析构关闭并删除该文件;源回调的存活期不超过其所属源

ExportAnnotations 与 ImportAnnotations 实现映射注释 XFDF 交换;ChangedAnnotations 报告映射 XFDF 导入的追加计数,与 ChangedFields 使用同一准备变更计数器

限制

FillTypedData 在同一候选中准备混合标量字段和原始类型化富 run,无需 RV 解码往返;prepared-field 访问器读取实际生成的候选

ImportDataWithFamilies 选择一至十六个命名字族,配以真实样式程序和同样的认证候选生命周期;原 ImportData 方法保持单字族行为

THPDFWindowsFormDataLimits.Default 把 MaxWorkingBytes 设为 256 MiB、MaxOutputBytes 128 MiB、MaxObjects 100000、MaxPages 10000;工作容量至少 1 MiB,其余容量必须为正

CancellationToken 为借用,仅在事务析构前有效;它在原生解析、富 XML 解码、策略验证和复制期间轮询原始文档的操作令牌与 Checkpoint

此 Windows 类可用于现代 Delphi、C++Builder 和 Windows FPC;原生 Linux 直接使用 THPDFHeadlessDocument

Related topics

Windows FDF/XFDF exchange, Current graph preparation, Native form data

FDF 注释图

ExportAnnotationsFDF 返回注释计数并把有界二进制 FDF 写入 Bytes;ImportAnnotationsFDF 使用 THPDFFDFOptions 准备候选

FDF profile 保留已提供的外观资源和共享间接对象;同一页面上匹配的 NM 值选中要替换的现有注释

FDF 方法使用同样的借用文档所有权、认证策略和候选准备生命周期;ChangedAnnotations 统计实际替换与追加,等价导入保留精确的当前修订

注释移除

RemoveAnnotations 通过同样的候选生命周期准备精确的页面加 NM 移除,包括依赖的 popup 与回复;ChangedAnnotations 对全部移除只计一次

在 TakeCandidate 之前发布 PDF 与结果数据;失败保持借用的文档和源不变