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_APPEARANCESNormal、Rollover、Down、名前付き状態の注釈アピアランスストリームを走査します
PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKSExtGState のソフトマスク辞書が参照する透明グループストリームを走査します
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