function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;
| nFlag | Integer. フラット化プロファイルを選択します。画面表示に最適化するには FLAT_NORMALDISPLAY(0、既定)を、印刷出力に最適化するには FLAT_PRINT(1)を渡します |
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;