PDFium Delphi Component Docs

FlattenPage メソッド

コンポーネント: TPdf  ·  ユニット: PDFium
現在のページの注釈とフォームウィジェットを、永続的な(編集できない)ページコンテンツにフラット化します。nFlag はフラット化プロファイルを選択します:画面表示には FLAT_NORMALDISPLAY(0)、印刷出力には FLAT_PRINT(1)。戻り値は FLATTEN_SUCCESS、FLATTEN_NOTHINGTODO、FLATTEN_FAIL のいずれかです。入力済みのフォーム値をフラット化するときは、先に GenerateFormAppearances を呼び出してください

構文

function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;

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

戻り値

3 つの整数定数のいずれかです。FLATTEN_SUCCESS(1)— 注釈がページコンテンツに正常にマージされた、FLATTEN_NOTHINGTODO(2)— フラット化すべき注釈やウィジェットがページになかった、FLATTEN_FAIL(0)— 操作が失敗した、を意味します

説明

FlattenPage は、現在のページのすべての注釈と AcroForm ウィジェットを、永続的で編集できないページコンテンツストリームにマージします。フラット化された注釈はもうインタラクティブではなく、編集・削除・送信のできない普通のグラフィックスになります。これは、入力済みフォームや注釈付きドキュメントの見た目を保つ「ロックされた」PDF を生成する標準的な手法です

nFlag パラメーターは、ウィジェットをページコンテンツへ描画するときに使用されるレンダリングプロファイルを選択します。画面で閲覧されるドキュメントには FLAT_NORMALDISPLAY(0)を、印刷を目的とするドキュメントには FLAT_PRINT(1)を使用してください

ページに入力済みのフォームフィールドが含まれる場合は、FlattenPage の前に必ず GenerateFormAppearances を呼び出す必要があります。外観ストリームがないと、フラット化処理にはマージすべき視覚表現がなく、フィールド値は出力から黙って省略されます。1 ページ分の推奨手順は、FormField[] 値の代入 → GenerateFormAppearances → FlattenPage → SaveAs です

ドキュメント内のすべてのページを 1 回の呼び出しでフラット化するには FlattenAllPages を使用します。エラーの検出には戻り値を FLATTEN_FAIL と比較してください。FLATTEN_NOTHINGTODO はエラー状態ではありません

例

var
  Res: Integer;
begin
  Pdf1.PageIndex := 0;
  // Fill a form field, regenerate appearances, then flatten
  Pdf1.FormField[0] := 'John Smith';
  Pdf1.GenerateFormAppearances;
  Res := Pdf1.FlattenPage(FLAT_NORMALDISPLAY);
  if Res = FLATTEN_FAIL then
    ShowMessage('Flatten failed')
  else
    Pdf1.SaveAs('output_flat.pdf');
end;

関連項目

FlattenAllPages, GenerateFormAppearances, SaveAs, Annotation