PDFium Delphi Component Docs

SetFormFieldFlags メソッド

コンポーネント: TPdf  ·  ユニット: PDFium
現在のページの指定した注釈インデックスにあるフォームフィールドの AcroForm フィールドフラグを設定します

Syntax

procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);

IndexInteger。現在ページでのフォームフィールドの 0 基準注釈インデックス。0 から AnnotationCount - 1 の範囲で指定します
FlagsTPdfFormFieldFlags。フィールドへ適用する TPdfFormFieldFlag 値の集合。PDF 仕様で定義された AcroForm フィールドフラグ(read-only、required、no-export など)に対応します

Description

SetFormFieldFlags は現在のページの指定した 0 始まり注釈インデックスにあるフォームウィジェット注釈に AcroForm フィールドフラグを書き込みます。フラグはフィールドの対話動作を制御します。たとえば読み取り専用にマークするとユーザーが値を変更できなくなり、必須にマークするとフォームを送信する前に記入が必要であることを示します。

Index パラメーターは FormFieldCount が報告するフォームフィールドインデックスではなく、AnnotationCount が報告する注釈インデックスを参照します。どの注釈インデックスがフォームウィジェットに対応するかは FormFieldInfo または HasFormFieldAt で特定します。インデックスではなくページ座標でフィールドを指定するには SetFormFieldFlagsAt を使います。

フラグ変更はメモリ内ドキュメントで直ちに有効になりますが、SaveAs が呼ばれるまで永続化されません。フォームを入力した後にプログラムでロックするときの推奨手順は:FormField[] 値を割り当て、GenerateFormAppearances を呼び、フラグを読み取り専用に設定し、SaveAs を呼ぶ、です。

Example

var
  I: Integer;
begin
  Pdf1.PageIndex := 0;
  // Mark every form field on the page as read-only
  for I := 0 to Pdf1.AnnotationCount - 1 do
    if Pdf1.FormFieldInfo[I].FieldType <> fftUnknown then
      Pdf1.SetFormFieldFlags(I, [ffReadOnly]);
  Pdf1.SaveAs('output_readonly.pdf');
end;

See Also

FormField, FormFieldCount, FormFieldInfo, SetFormFieldFlagsAt, HasFormFieldAt