PDFium Delphi Component 文件

GeneratePagedLayout 方法

组件: TPdf  ·  单元: PDFium, FPdfLayout

语法

function GeneratePagedLayout(Layout: TPdfLayoutDocument; PagedPlan: TPdfLayoutPagedPlan; out Plan: TPdfLayoutPlan; AllowSignedDocument: Boolean = False): Boolean;

说明

在将每个命令序列化到 PagedPlan 拥有或引用的可寻址存储中的同时,度量并分页布局

度量之后,它一次物化一个页面命令数组,通过与 GenerateLayout 相同的原生 PDFium 页面对象 API 输出该页面,刷写它,释放本地数组,然后继续处理下一页

存储与缓存

使用专用的 TFileStream、TMemoryStream 或 TPdfRandomAccessStore;流必须支持查找、读取、写入、调整大小,并在分页计划生存期内独占使用

MaxCommandCount、MaxStorageBytes、MaxPageCommands 和 MaxSourceCount 拒绝过大的计划,而 MaxCachedPages 限制内部 LRU 缓存,可以为零

CommandCount、StorageByteCount、缓存计数器和峰值占用暴露可度量的行为

结果

Plan.Commands 按设计为空;页面设置、页数、语义元素、内容计数、度量以及稳定的页面引用总数仍然可用

PagedPlan.MaterializePage 之后可以还原完整的页面,包括正文以及单独写入的页眉和页脚段

限制与安全性

此方法生成无标签的布局;当需要完整的内存中命令计划和结构树后处理时,使用 GenerateTaggedLayout

PDFium 在保存或关闭之前会保留已编写的文档及其原生页面,因此该 API 限制的是高层命令的物化,而不是 PDFium 文档内存

任何被引用的源 PDF 或 TPdfLayoutCachedNode 都必须比生成和后续物化存活得更久,已签名目标需要显式授权

度量或输出失败会重置不完整的命令存储,并回滚该调用追加的每个页面

参见

GenerateLayout, GenerateTaggedLayout, FPdfLayout, 随机访问工作存储