THPDFWindowsFormDataSource

HPDFWindowsFormData 提供一个自有持有的 Windows 随机访问源,生命周期绑定私有临时文件

THPDFWindowsFormDataSource = class(THPDFRandomAccessSource)
  constructor Create;
  destructor Destroy; override;
  procedure Seal;
  function GetSize: Int64; override;
  function ReadAt(Offset: Int64; var Buffer; Count: Longint): Longint; override;
  property Stream: TFileStream;
end;

Create 独占保留一个唯一的临时文件并暴露可写的 Stream;先写入完整源内容并调用一次 Seal,再交给已加载的文档

Seal 刷盘并关闭可写句柄,然后以只读方式重新打开文件并拒绝写共享;它不接受任意调用方路径作为底层源

GetSize 报告当前流的总长度;ReadAt 拒绝负偏移或负计数,把读取限制在可用字节内,到 EOF 或超出时返回 0,无论成败都恢复流位置

以 OwnSource=False 加载的文档借用该源;在文档销毁之前保持其存活;Destroy 关闭句柄并删除自有私有文件

该源没有独立的取消或字节容量机制;事务与回调适配器在复制和读取时实施这些约束;直接准备源的调用方须自行套用边界与取消策略

事务类, Windows 表单数据交换