JavaでPDFフォームを作成する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF for Javaは、開発者が動的でインタラクティブなPDFフォームを構築することを可能にします - HTMLをPDFに変換することで、テキスト入力、チェックボックス、コンボボックス、ラジオボタン。 HTML優先のアプローチにより、標準のWebテクノロジーを使用して、プロプライエタリなフォームAPIを学ぶことなく、フォームのレイアウトと動作を完全にコントロールできます。 既存のPDFフォームをプログラムで入力することもできます。IronPDFがフォームフィールドをモデル化する方法を理解したら。

従来 for Java PDFライブラリは、低レベルのPDFオブジェクトを通じてフォームフィールドを構築する必要があります。 IronPDFは異なる道を取ります:HTMLとCSSでフォームを書き、それをPDFにレンダリングして、すべてのインタラクティブフィールドを保持します。 結果はAdobe Acrobat Readerおよびすべての主要なPDFビューアと互換性があります。

クイックスタート:JavaでPDFフォームを作成する

  1. Maven Central経由でIronPDF for Javaをプロジェクトに追加します
  2. License.setLicenseKey() でライセンスキーを設定してください
  3. 標準的なフォーム要素(<select>)を含むHTML文字列を作成してください。
  4. PdfDocument.renderHtmlAsPdf() を呼び出して、HTMLをPDFに変換します
  5. 翻訳した文書を saveAs() で保存してください
//:path=/static-assets/ironpdf-java/howto/create-forms/quickstart-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set license key before any rendering call
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML form with a text field and submit button
String formHtml = "<h2>Registration Form</h2>" +
                  "<form>" +
                  "<label>Name: <input type='text' name='fullname' placeholder='Enter name'></label><br>" +
                  "<button type='submit'>Submit</button>" +
                  "</form>";

// Render HTML to PDF — form fields are preserved
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(formHtml);
pdf.saveAs("registration-form.pdf");
//:path=/static-assets/ironpdf-java/howto/create-forms/quickstart-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set license key before any rendering call
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML form with a text field and submit button
String formHtml = "<h2>Registration Form</h2>" +
                  "<form>" +
                  "<label>Name: <input type='text' name='fullname' placeholder='Enter name'></label><br>" +
                  "<button type='submit'>Submit</button>" +
                  "</form>";

// Render HTML to PDF — form fields are preserved
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(formHtml);
pdf.saveAs("registration-form.pdf");
JAVA

Javaでフォームを作成するには?

IronPDFは、W3C HTMLフォーム仕様を真実の源として扱うことでHTMLからPDFフォームを作成します。 すべての標準フォーム要素(<checkbox>、および <radio>)は、出力PDF内でインタラクティブなフィールドとして保持されます。 これらの要素をCSSでスタイル設定し、ブランド要件に合わせてカスタムフォントを含めることができます。

IronPDFはフォームを作成する際、HTMLフォーム要素のインタラクティブ性をPDFに保持します。 ユーザーは、追加のソフトウェアを使用せずに、PDFビューアで直接フォームに入力することができます。 フォームはAdobe Acrobat Readerおよびすべての一般的に展開されているPDFビューアで動作し、法人および消費者環境全体でアクセス可能です。 詳細なレンダリングオプションについては、PDF生成設定ドキュメントを参照してください。

ヒントIronPDFは実行中のブラウザやインストールされたPDFプリントドライバを必要としません。 レンダリングエンジンはライブラリと同梱されているため、開発機、CIサーバー、およびクラウド展開全体でフォームは同一にレンダリングされます。)}

テキスト入力フォームとTextAreaフォームはどのように作成しますか?

テキスト入力とテキストエリアは、名前、メールアドレス、コメント、複数行の説明を収集するために役立つ最も一般的なPDFフォーム要素です。 IronPDF では、<input type="text"> は単行の PDF テキストフィールドに、<textarea> は行と列の寸法を維持する複数行のフィールドにマッピングされます。

HTMLフォーム要素は、PDFに変換してもその機能を維持します。 ユーザーはフィールドをクリックしてテキストを入力し、Tabキーを使って入力間を移動できます。これは通常のウェブフォームと同じです。 変換時には、デフォルト値、プレースホルダーテキスト、および requiredpattern などの HTML5 検証属性が保持されます。 細かいレイアウト制御には、カスタム用紙サイズマージン設定を組み合わせてフォーム要素を使用します。

//:path=/static-assets/ironpdf-java/howto/create-forms/text-input-textarea-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with single-line inputs and a multi-line textarea
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <form>
            First name: <br> <input type='text' name='firstname' value=''> <br>
            Last name: <br> <input type='text' name='lastname' value=''> <br>
            Address: <br> <textarea name='address' rows='4' cols='50'></textarea>
        </form>
    </body>
</html>
""";

// Render HTML — both <input> and <textarea> become interactive PDF fields
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("textAreaAndInputForm.pdf");
//:path=/static-assets/ironpdf-java/howto/create-forms/text-input-textarea-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with single-line inputs and a multi-line textarea
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <form>
            First name: <br> <input type='text' name='firstname' value=''> <br>
            Last name: <br> <input type='text' name='lastname' value=''> <br>
            Address: <br> <textarea name='address' rows='4' cols='50'></textarea>
        </form>
    </body>
</html>
""";

// Render HTML — both <input> and <textarea> become interactive PDF fields
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("textAreaAndInputForm.pdf");
JAVA

renderHtmlAsPdf クラスに対する PdfDocument 呼び出しは、HTML を完全にインタラクティブな PDF に変換します。 各名付けられたフォームフィールドは、PDFのAcroForm辞書において独立したフィールドとなり、標準に準拠した任意のPDFビューアで読み取れます。 address)は出力時に保持され、後でフォームデータを抽出する際に読み戻すことができます。

出力PDFドキュメント:


チェックボックスとコンボボックスのフォームはどのように作成しますか?

チェックボックスとコンボボックスは、PDFフォームにおける2つの最も一般的な選択パターンをカバーしています。すなわち、オン/オフの二者択一と、リストからの単一項目の選択です。IronPDFでは、<select>要素をPDFのコンボボックス(ドロップダウン)フィールドにマッピングします。

コンボボックスフィールドを使用すると、ユーザーは <option> 要素で定義された固定のオプション一覧から選択することができます。 オプションに selected 属性を追加することでデフォルト値を事前設定したり、<optgroup> を使用して関連する選択肢をグループ化したり、CSS を使用してドロップダウンの外観をドキュメントのデザインに合わせたりすることができます。 <select>属性は、生成されるPDF内のフィールド名となるため、フォームデータの抽出が容易になります。 PDF AcroFormフィールドが選択データをどのように保管するかについては、Apache PDFBoxプロジェクトを参照してください。他のツールでフォームを処理する必要がある場合。

//:path=/static-assets/ironpdf-java/howto/create-forms/checkbox-combobox-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with a checkbox and a select dropdown
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <h3>Task Completed</h3>
        <label>
            <input type='checkbox' id='taskCompleted' name='taskCompleted'> Mark task as completed
        </label>
        <h3>Select Priority</h3>
        <label for='priority'>Choose priority level:</label>
        <select id='priority' name='priority'>
            <option value='high'>High</option>
            <option value='medium' selected>Medium</option>
            <option value='low'>Low</option>
        </select>
    </body>
</html>
""";

// Render HTML — checkbox and combobox fields are preserved in the PDF
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("checkboxAndComboboxForm.pdf");
//:path=/static-assets/ironpdf-java/howto/create-forms/checkbox-combobox-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with a checkbox and a select dropdown
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <h3>Task Completed</h3>
        <label>
            <input type='checkbox' id='taskCompleted' name='taskCompleted'> Mark task as completed
        </label>
        <h3>Select Priority</h3>
        <label for='priority'>Choose priority level:</label>
        <select id='priority' name='priority'>
            <option value='high'>High</option>
            <option value='medium' selected>Medium</option>
            <option value='low'>Low</option>
        </select>
    </body>
</html>
""";

// Render HTML — checkbox and combobox fields are preserved in the PDF
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("checkboxAndComboboxForm.pdf");
JAVA

チェックボックスフィールドには、送信されたフォームを処理する際に下流のコードが読み取れるブール値の状態(PDF表記では /On または /Off)が格納されます。 コンボボックスは、選択された <option>value 属性を格納します。 両方のフィールドタイプは保存されたPDFでもインタラクティブな状態を維持します—ユーザーはボックスにチェックを入れたり、ドロップダウンの選択を変更することができます。

出力PDFドキュメント:


ラジオボタンフォームはどのように作成しますか?

ラジオボタンは、相互に排他的な選択を提示します:ユーザーがグループ内の1つのオプションを選択すると、同じグループ内の以前に選択された他のオプションは自動的に解除されます。 IronPDFは、name要素を、PDFのAcroForm辞書内の単一のグループ化されたラジオフィールドにマッピングします。

グループ内のすべてのラジオボタンは、同じ name 属性値を共有する必要があります。これが、PDF内でそれらを関連付ける要素となります。 各ボタンの value 属性は、そのオプションが選択された際にフィールドに何が格納されるかを決定します。 グループ内のボタンが選択されていない場合、フィールドの値は None となります。 読み込まれた PdfDocument 上で getForm() および getFields() メソッドを使用することで、現在の選択内容を読み戻すことができます。これにより、フォームへの事前入力や送信データの検証を行うワークフローを構築できます。 フォームフィールドを読み取る例については、PDFフォームデータ例を参照してください。

//:path=/static-assets/ironpdf-java/howto/create-forms/radio-button-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with a radio button group — all three share name='traveltype'
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        Choose your preferred travel type: <br>
        <input type='radio' name='traveltype' value='Bike'> Bike <br>
        <input type='radio' name='traveltype' value='Car'> Car <br>
        <input type='radio' name='traveltype' value='Airplane'> Airplane
    </body>
</html>
""";

// Render HTML — all three radio inputs become one grouped field in the PDF
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("radioButtonForm.pdf");
//:path=/static-assets/ironpdf-java/howto/create-forms/radio-button-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with a radio button group — all three share name='traveltype'
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        Choose your preferred travel type: <br>
        <input type='radio' name='traveltype' value='Bike'> Bike <br>
        <input type='radio' name='traveltype' value='Car'> Car <br>
        <input type='radio' name='traveltype' value='Airplane'> Airplane
    </body>
</html>
""";

// Render HTML — all three radio inputs become one grouped field in the PDF
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("radioButtonForm.pdf");
JAVA

3つの <input type="radio"> 要素が name="traveltype" 属性を共有しているため、IronPDF は出力 PDF 内で単一の AcroForm ラジオグループを作成します。 たとえば、Acrobat Readerで"Car"を選択すると、フィールドの値がCarに設定され、それ以前の選択内容はすべてクリアされます。 この動作は、ウェブフォームのラジオボタングループに対してユーザーが期待するものを反映し、ウェブからPDFのデータ収集への移行を自然なものにします。

ご注意ラジオボタグループ名はフォーム全体で一意である必要があります。 異なる論理的グループで同じ名前を再利用すると、単一のフィールドにまとめられ、独立した選択ができなくなります。)}

PDFフォーム作成のベストプラクティスを適用する方法は?

信頼できるPDFフォームを作成するには、レンダリング設定と長期的な保守性の両面に注意を払う必要があります。 最も一般的な問題は、ブラウザ上では正しく表示されるフォームが、変換後にインタラクティブ性を失ってしまうことです。これは通常、フォーム要素に name 属性が欠落していることが原因です。 すべてのフィールドに必ず name を割り当ててください; IronPDFはこの値をPDFフィールド識別子として使用し、名前のないフィールドは削除されるか統合される可能性があります。

配布前に複数のPDFビューアでフォームをテストします。 Adobe Acrobat Readerは参照実装ですが、多くの企業環境ではFoxit Readerやブラウザベースのビューアをデプロイしており、それぞれがエッジケースを少し異なって処理します。 IronPDFがレンダリング時に認識するHTML5検証属性(pattern)を使用することで、バックエンドではなくフォーム入力時にデータ品質の問題を検出できます。 機密文書には、無許可の編集からフォームを保護するためにパスワードとセキュリティ設定を適用します。

本番環境にデプロイする際は、最初のレンダリング呼び出しの前にライセンスキーを設定し、ハードコーディングするのではなく安全な設定ストアに保持します。 IronPDFはAWSAzureGoogle Cloud環境向けのデプロイガイドを公開しています。 トライアルおよび本番用キーの動作に関する詳細については、ライセンスキーガイドを確認してください。

ヒントフォームフィールド名を短く英数字にしてください。 一部のPDFリーダーは、スペースや特殊文字を含むフィールド名を切り捨てたり拒否したりし、フォームデータの抽出ができなくなることがあります。)}

JavaでPDFフォームを作成する次のステップは?

このガイドでは、4つの主要なインタラクティブフォームフィールドタイプ—テキスト入力、テキストエリア、チェックボックス、コンボボックス、ラジオボタン—をカバーし、IronPDFが標準のHTMLフォームマークアップを完全にインタラクティブなPDFに変換する方法を示しました。 各フィールドタイプはHTMLの対応部分に直接マッピングされるため、既存のウェブフォームテンプレートは最小限の修正で再利用できます。

ここからは、以下を探索することを考慮してください:

  • フォームデータの読み取りと処理getForm() および getFields() を使用して、入力済みの PDF から送信された値を抽出します。 フォームデータ例は、完全な読み返しワークフローを示しています。
  • プログラムでフォームを事前に記入する:フォーム作成をPDFフォーム記入ガイドと組み合わせて、各受取人に事前入力されたドキュメントを生成します。
  • フォームを保護する:パスワード保護を追加し、編集を制限してセキュリティおよびメタデータ設定の例を参照してください。
  • 高度なレンダリング:用紙サイズ、余白、ヘッダー、およびフッターを制御するにはPDF生成設定ガイドを参照してください。

無料トライアルを開始して、有料ライセンスなしでフォーム作成をテストしてください。 プロジェクトが本番の準備ができたら、ライセンスオプションを表示して、デプロイに適したプランを選択してください。

IronPDFの他の機能をご覧になりたいですか? HTMLからPDFへのチュートリアル全体をここでチェックしてください:JavaでのHTMLからPDFへの変換

よくある質問

JavaでPDFフォームを作成する最も簡単な方法は何ですか?

IronPDF for Java は、標準の HTML から PDF フォームを作成します。