PDFium Delphi Component Docs

GeneratePagedLayout メソッド

コンポーネント: TPdf  ·  ユニット: PDFium, FPdfLayout

構文

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

説明

PagedPlan が所有または参照するシーク可能なストレージへ各コマンドをシリアライズしながら、レイアウトを計測し、ページ分割します

計測の後、一度に 1 ページ分のコマンド配列だけを実体化し、GenerateLayout と同じネイティブ PDFium ページオブジェクト API でそのページを出力し、フラッシュしてローカル配列を解放し、次のページへ進みます

ストレージとキャッシュ

専用の TFileStream、TMemoryStream、または TPdfRandomAccessStore を使用してください。ストリームはページ分割済みプランの生存期間中、シーク、読み取り、書き込み、リサイズ、排他的利用をサポートしなければなりません

MaxCommandCount、MaxStorageBytes、MaxPageCommands、MaxSourceCount は過大なプランを拒否し、MaxCachedPages は内部 LRU キャッシュを制限します。0 を指定することもできます

CommandCount、StorageByteCount、キャッシュカウンタ、ピーク使用量が測定可能な動作を公開します

結果

Plan.Commands は設計上 empty です。ページ設定、ページ数、セマンティック要素、コンテンツ数、計測値、安定したページ参照合計は引き続き利用できます

PagedPlan.MaterializePage を使えば、本文と個別に書き出されたヘッダー・フッターセグメントを含む完全なページを後から復元できます

制限と安全性

このメソッドはタグなしのレイアウトを生成します。完全なインメモリコマンドプランと構造ツリーの後処理が必要な場合は GenerateTaggedLayout を使用してください

PDFium は保存またはクローズまで、作成されたドキュメントとそのネイティブページを保持します。そのためこの API は、PDFium ドキュメントのメモリではなく、高レベルコマンドの実体化を制限します

参照されるソース PDF や TPdfLayoutCachedNode は、生成中およびその後の実体化の間も生存していなければならず、署名されたドキュメントへの出力には明示的な許可が必要です

計測または出力が失敗すると、不完全なコマンドストレージをリセットし、この呼び出しで追加されたすべてのページをロールバックします

関連項目

GenerateLayout, GenerateTaggedLayout, FPdfLayout, Random access working storage