AcroFormsの変更

カスタムフォームフィールドフォントの設定

Adobe PDFファイルのフォームフィールドは、特定のデフォルトフォントを使用するように設定できます。Aspose.PDFを使用すると、開発者は14のコアフォントの1つまたはカスタムフォントをフィールドのデフォルトフォントとして適用できます。 フォームフィールドに使用されるデフォルトフォントを設定および更新するには、Aspose.PDFのDefaultAppearance (Font font, double size, Color color) クラスを使用します。このクラスはcom.aspose.pdf.DefaultAppearanceを使用してアクセスできます。このオブジェクトを使用するには、FieldクラスのsetDefaultAppearance(..)メソッドを使用します。

次のコードスニペットは、PDFフォームフィールドのデフォルトフォントを設定する方法を示しています。


    // ドキュメントを開く
    $document = new Document($inputFile);

    // ドキュメントから特定のフォームフィールドを取得
    $field = $document->getForm()->get("textbox1");

    // フォントオブジェクトを作成
    $fontRepository = new FontRepository();
    $font = $fontRepository->findFont("ComicSansMS");

    $colors = new Color();
    $blackColor = $colors->getBlack();

    // フォームフィールドのフォント情報を設定
    $field->setDefaultAppearance(new DefaultAppearance($font, 10, $blackColor));

    // 更新されたドキュメントを保存
    $document->save($outputFile);
    $document->close();        

    $document->close();

Get/Set FieldLimit

このコードは、Document クラスを使用して、ドキュメントを開き、フォームフィールドを取得し、その最大長を設定し、‘setMaxLen’ と ‘getMaxLen’ メソッドで最大長を取得する方法を示しています。


    // ドキュメントを開く
    $document = new Document($inputFile);

    // ドキュメントから特定のフォームフィールドを取得
    $field = $document->getForm()->get("textbox1");
    
    $field->setMaxLen(10);

    // DOMを使用して最大フィールド制限を取得
    $responseData = "Limit: " . $field->getMaxLen();          

    $document->close();

以下のコードスニペットを使用して、Aspose.PDF.Facades 名前空間を使用して同じ値を取得することもできます。


    // ドキュメントを開く
    $document = new Document($inputFile);

    // ドキュメントから特定のフォームフィールドを取得
    $field = $document->getForm()->get("textbox1");

    // DOMを使用して最大フィールド制限を取得
    $responseData = "Limit: " . $field->getMaxLen();          

    $document->close();

同様に、Aspose.PDF には DOM アプローチを使用してフィールドの制限を取得するメソッドがあります。次のコードスニペットは、その手順を示しています。


    // ドキュメントを開く
    $document = new Document($inputFile);

    // ドキュメントから特定のフォームフィールドを取得
    $field = $document->getForm()->get("textbox1");

    // フィールドを削除
    $field->delete();
    
    $document->close();

PDFドキュメントから特定のフォームフィールドを削除する

すべてのフォームフィールドは、Document オブジェクトのフォームコレクションに含まれています。このコレクションは、削除メソッドを含むフォームフィールドを管理するためのさまざまなメソッドを提供します。特定のフィールドを削除したい場合、削除メソッドのパラメータとしてフィールド名を渡し、その後、更新されたPDFドキュメントを保存します。

次のコードスニペットは、PDFドキュメントから名前付きフィールドを削除する方法を示しています。


    // ドキュメントを開く
    $document = new Document($inputFile);

    // ドキュメントから特定のフォームフィールドを取得
    $field = $document->getForm()->get("textbox1");

    // フィールドを削除
    $field->delete();
    
    $document->close();

PDFドキュメントのフォームフィールドを修正する

Document オブジェクトのフォームコレクションを使用して、PDFドキュメントのフォームフィールドを管理できます。

フォームフィールドを修正するには、フォームコレクションからフィールドを取得し、そのプロパティを設定します。その後、更新したPDFドキュメントを保存します。

次のコードスニペットは、PDFドキュメント内の既存のフォームフィールドを修正する方法を示しています。


    // ドキュメントを開く
    $document = new Document($inputFile);

    // ドキュメントから特定のフォームフィールドを取得
    $field = $document->getForm()->get("textbox1");

    // フィールドの値を修正
    $field->setValue("更新された値");

    // フィールドを読み取り専用に設定
    $field->setReadOnly(true);

    // 更新されたドキュメントを保存
    $document->save($outputFile);        
    $document->close();

PDFファイル内でフォームフィールドを新しい場所に移動する

PDFページ上でフォームフィールドを新しい場所に移動したい場合は、まずフィールドオブジェクトを取得し、そのsetRectメソッドに新しい値を指定します。 A Rectangle オブジェクトに新しい座標を設定して setRect(..) メソッドに割り当てます。その後、Document オブジェクトの save メソッドを使用して更新された PDF を保存します。

次のコードスニペットは、フォームフィールドを新しい場所に移動する方法を示しています。


    // ドキュメントを開く
    $document = new Document($inputFile);

    // ドキュメントから特定のフォームフィールドを取得
    $field = $document->getForm()->get("textbox1");

    // フィールドの位置を変更
    $field->setRect(new Rectangle(300, 400, 600, 500));

    // 更新されたドキュメントを保存
    $document->save($outputFile);        
    $document->close();