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 关闭句柄并删除自有私有文件
该源没有独立的取消或字节容量机制;事务与回调适配器在复制和读取时实施这些约束;直接准备源的调用方须自行套用边界与取消策略