PurgeUnusedResources
ドキュメント操作、最適化
説明
選択したページのコンテンツレイヤーと推移的なリソース依存関係を走査し、該当するリソーススコープで参照されていない名前付きリソースを削除します
既定のオプションは Form XObject、タイルパターン、Type 3 グリフ、注釈外観およびソフトマスクグループを再帰処理し、画像およびその他のリソースが参照する色空間を保持し、非推奨の /ProcSet 配列と空のリソースカテゴリを削除し、クリーンアップにより到達不能になった間接オブジェクトを収集します
構文
Delphi
Function TPDFlib.PurgeUnusedResources(Const PageRange: WideString= '';
Options: Integer= PDF_RESOURCE_PURGE_DEFAULT): Integer; Overload;
Function TPDFlib.PurgeUnusedResources(Const PageRange: WideString;
Options: Integer; Out Stats: TPDFlibResourcePurgeStats): Integer; Overload;
パラメータ
| PageRange | 他のページ範囲 API と同じ構文を使用する 1 から始まるページ範囲。空文字列の場合はすべてのページ |
|---|---|
| Options | リソース破棄オプション定数のビット単位の組み合わせ |
| Stats | 走査、安全性、削除、および孤立オブジェクトのカウンターを受け取ります |
オプション
| PDF_RESOURCE_PURGE_RECURSE_FORMS | 参照先の Form XObject をスキャンし、それぞれ独自または継承されたリソーススコープに従います |
|---|---|
| PDF_RESOURCE_PURGE_REMOVE_PROCSET | 非推奨の /ProcSet 配列を削除します |
| PDF_RESOURCE_PURGE_REMOVE_EMPTY | 空のリソースカテゴリ辞書を削除します |
| PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN | コンテンツストリームに未知の演算子が含まれる場合でもクリーンアップできるようにします |
| PDF_RESOURCE_PURGE_DRY_RUN | 文書を変更せずに、削除可能な名前付きエントリを報告します |
| PDF_RESOURCE_PURGE_GARBAGE_COLLECT | ライブクリーンアップ後に到達不能になった間接オブジェクトを収集します |
| PDF_RESOURCE_PURGE_RECURSE_PATTERNS | 参照されたタイルパターンのコンテンツと独立したリソーススコープを走査します |
| PDF_RESOURCE_PURGE_RECURSE_TYPE3 | フォントリソーススコープを使用し、参照される Type 3 フォント内のすべての CharProc ストリームをスキャンします |
| PDF_RESOURCE_PURGE_RECURSE_APPEARANCES | Normal、Rollover、Down、名前付き状態の注釈アピアランスストリームを走査します |
| PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKS | ExtGState のソフトマスク辞書が参照する透明グループストリームを走査します |
| PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIES | 画像 XObject、明示的マスク、ソフトマスク画像、代替画像にネストされた依存関係がないか調べます |
| PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIES | パターン、Type 3、アピアランス、ソフトマスク、画像の依存関係分析を統合します |
| PDF_RESOURCE_PURGE_DEFAULT | 依存関係解析、Form 再帰、ProcSet 削除、空カテゴリ削除、およびガベージコレクションをすべて組み合わせます |
戻り値
| Live cleanup | 削除された名前付きリソースエントリ数 |
|---|---|
| Dry run | 削除できる名前付きリソースエントリ数 |
| 0 | 削除可能な名前付きエントリ、選択されたページ、または読み込まれた文書がありません |
備考
走査は Font、XObject、ExtGState、ColorSpace、Pattern、Shading、Properties 参照を認識し、インライン画像辞書のカスタム色空間とリソースオブジェクトの間接依存も含みます
依存関係の閉包には、画像と shading の色空間、Indexed のベース、Separation と DeviceN の代替、Pattern の基礎色空間、ICCBased の代替、タイリングパターンコンテンツ、すべての Type 3 CharProcs、注釈アピアランス状態、ExtGState ソフトマスクグループ、画像マスク、ソフトマスク画像、代替画像が含まれます
PDF 名は大文字小文字を区別して照合され、クリーンアップ前に選択した各ページのすべてのコンテンツレイヤーが結合されます
PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN が設定されていない限り、不正なストリームと未知の演算子は完全なリソーススコープを保持する
共有および継承されたリソース辞書は変更前にコピーされるため、クリーンアップは選択したページ、Form、パターン、Type 3 フォント、外観またはソフトマスクグループにローカルなままです
繰り返されるストリームと依存エントリはキャッシュ済みの解析結果を再利用し、深さ制限とアクティブストリーム追跡によって不正なリソースサイクルを終了します
Abort により、OnProgress ハンドラーからキャンセルできます
例
var
Stats: TPDFlibResourcePurgeStats;
Removed: Integer;
begin
Removed:= PDF.PurgeUnusedResources('1-20',
PDF_RESOURCE_PURGE_DEFAULT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
関連項目
TPDFlibResourcePurgeStats、GarbageCollectObjects、OnProgress、Abort