PDFium Delphi Component Docs

FlattenAllPages メソッド

コンポーネント: TPdf  ·  ユニット: PDFium
ドキュメント内のすべてのページをフラット化する簡易ラッパーです。すべてのページが FLATTEN_SUCCESS または FLATTEN_NOTHINGTODO で完了した場合に True を返します。推奨ワークフロー:GenerateFormAppearances → FlattenAllPages → SaveAs

構文

function FlattenAllPages(nFlag: Integer = FLAT_NORMALDISPLAY): Boolean;

nFlagInteger. すべてのページに適用されるフラット化プロファイルを選択します。画面表示に最適化するには FLAT_NORMALDISPLAY(0、既定)を、印刷出力に最適化するには FLAT_PRINT(1)を渡します

戻り値

ドキュメント内のすべてのページが FLATTEN_SUCCESS(1)または FLATTEN_NOTHINGTODO(2)を返した場合は True、いずれかのページが FLATTEN_FAIL(0)を返した場合は False です

説明

FlattenAllPages は、読み込まれたドキュメントのすべてのページを走査し、各ページに FlattenPage 相当の処理を呼び出す簡易ラッパーです。全ページの注釈と AcroForm ウィジェットが、1 回の呼び出しで永続的で編集できないページコンテンツにマージされます

メソッドが True を返すのは、すべてのページが FLATTEN_SUCCESS または FLATTEN_NOTHINGTODO で完了した場合だけです。1 つのページでも FLATTEN_FAIL を返すとメソッドは False を返しますが、フラット化は残りのページに対して継続します

ドキュメントに入力済みのフォームフィールドが含まれる場合は、必ず FlattenAllPages の前に GenerateFormAppearances を呼び出してください。外観ストリームがないと、フィールド値はフラット化された出力に現れません。推奨される完全なワークフローは、FormField[] 値の代入 → GenerateFormAppearances → FlattenAllPages → SaveAs です

1 つのページだけをフラット化してその結果コードを確認する場合は、代わりに FlattenPage を使用してください

例

begin
  // Fill fields, generate appearances, flatten entire document
  Pdf1.FormField[0] := 'Jane Doe';
  Pdf1.FormField[1] := '2026-05-20';
  Pdf1.GenerateFormAppearances;
  if Pdf1.FlattenAllPages(FLAT_NORMALDISPLAY) then
    Pdf1.SaveAs('output_flat_all.pdf')
  else
    ShowMessage('One or more pages could not be flattened');
end;

関連項目

FlattenPage, GenerateFormAppearances, SaveAs