JavaでPDFフォームを記入する方法

JavaでPDFフォームに入力する方法(チュートリアル)

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

IronPDF を使用すると、Java 開発者は既存の PDF を読み込み、getForm() を使用してフォームフィールドにアクセスし、setFieldValue() を使用して値を設定し、入力済みのドキュメントを保存することで、プログラムから PDF フォームに入力することができます。 これにより、ビジネスアプリケーションでのドキュメント処理の自動化が容易になります。

クイックスタート: Java で PDF フォームに入力する

```java {title="FillPDFForm.java"} //:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/quickstart.java // 1.MavenプロジェクトにIronPDF依存関係を追加する。 // 2.PDFフォームの読み込み PdfDocument form = PdfDocument.fromFile("form.pdf"); // フォームフィールドの入力 form.getForm().setFieldValue("firstname", "John"); // 4.記入したPDFを保存する form.saveAs(Paths.get("filled_form.pdf"));


<div class="hsg-featured-snippet">
<h2>JavaでPDFフォームを記入する方法</h2>
<ol>
<li><a class="js-modal-open" data-modal-id="download-modal" href="#download-modal">Maven経由でIronPDF Javaライブラリをインストール</a></li>
<li><code>PdfDocument.fromFile()</code>を使用してフォームフィールドを含む既存のPDFをロードする</li>
<li><code>getForm()</code>メソッドでフォームにアクセスする</li>
<li><code>setFieldValue(fieldName, value)</code>を使用してフィールド値を設定する</li>
<li><code>saveAs()</code>で入力されたドキュメントを保存する</li>
</ol>
</div>

この記事では、Javaでプログラム的にPDFフォームを埋める方法を説明します。 一般的なシナリオとして、アプリケーションがUIを通してユーザーデータを収集し、アーカイブ、コンプライアンス、または下流の処理のためにPDF形式でそれを保持する必要がある場合です。

ユーザー入力が取得された後に、アプリケーションはそのデータを事前に設定されたPDFテンプレートに直接注入する必要があります。 複数 for Java PDFライブラリでは、[Apache PDFBox](https://pdfbox.apache.org)やiText、IronPDFなどがこのタスクを処理します。 このガイドでは、IronPDFを使用し、テキストフィールド、チェックボックス、ラジオボタン、ドロップダウンリストのあるインタラクティブなフォームを入力する方法を説明します。 関連するドキュメントワークフローを構築する開発者のために、[JavaでのPDFフォームを一から作成する](https://ironpdf.com/java/how-to/create-forms/)ガイドをご覧ください。

## Java版IronPDFとは

IronPDFはPDFドキュメントの作成、編集、および操作のための[Java PDFライブラリ](https://ironpdf.com/java/)です。 これはMavenベース for Javaプロジェクトに統合され、共通のPDFタスクを最小限のボイラープレートで実現できるクリーンなAPIを提供します。

ライブラリは、HTMLをPDFにレンダリングすること、フォームデータの読みと書き、デジタル署名の追加、セキュリティ設定の適用、ドキュメントの圧縮、印刷という、フルPDFライフサイクルを網羅しています。 特にフォームに取り組む場合、IronPDFはPDFドキュメント内のすべてのフィールドタイプにプログラム的にアクセスし、元の書式を保持することができます。 これにより、バッチフォーム処理や、データベース記録でのテンプレートの事前入力、またはより大きなJavaワークフローへのフォーム記入を組み込むのに適しています。 [IronPDF Java APIリファレンス](https://ironpdf.com/java/object-reference/api/)には、利用可能なクラスとメソッドの完全なリストがあります。

## MavenプロジェクトにIronPDFをインストールするにはどうすればよいですか?

`pom.xml` ファイルに以下の依存関係ブロックを追加して、IronPDF for Java をインストールしてください。

`pom.xml` を開き、`<dependencies>` 要素内に依存関係を挿入してから、`mvn install` を実行してライブラリをダウンロードしてください。 利用可能なバージョンは[Maven Central](https://search.maven.org/artifact/com.ironsoftware/ironpdf)に一覧表示されています。

```xml
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/maven-dependency.xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>

インストール後、Javaクラスにcom.ironsoftware.ironpdf.render.ChromePdfRenderOptionsをインポートして、フォーム入力APIにアクセスしてください。 クラウドプラットフォームでのデプロイガイダンスについては、AWSAzure、およびGoogle Cloudのガイドをご覧ください。

ヒントDocker やコンテナ環境で IronPDF を使用する場合、実行時のライセンス検証による遅延を回避するために、最初の PdfDocument 呼び出しの前に IronPdf.licenseKey システムプロパティを設定してください。

JavaでHTMLを使用してPDFフォームを作成および入力するにはどうすればよいですか?

常に構造化され、入力可能なPDFを生成する最も信頼性の高い方法は、HTMLでフォームを定義し、それをIronPDFでレンダリングすることです。 このライブラリは、HTMLの<input>要素を、インタラクティブなPDFフォームフィールドに直接変換します。

以下のコードは、HTML文字列から二つのフィールドのPDFフォームを作成し、両方のフィールドを入力します:

//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/create-and-fill-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import java.io.IOException;
import java.nio.file.Paths;

public class App {

    public static void main(String[] args) throws IOException {

        // Define an HTML form with two text input fields
        String formHTML = "<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=''>"
            + "</form>"
            + "</body>"
            + "</html>";

        // Enable HTML-to-form-field conversion during rendering
        ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
        renderOptions.setCreatePdfFormsFromHtml(true);

        // Render HTML to PDF and save the blank template
        PdfDocument.renderHtmlAsPdf(formHTML, renderOptions)
            .saveAs(Paths.get("assets/BasicForm.pdf"));

        // Load the template and fill in field values
        PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm.pdf"));
        form.getForm().setFieldValue("firstname", "Minnie");
        form.getForm().setFieldValue("lastname", "Mouse");

        // Save the completed form to a new file
        form.saveAs(Paths.get("assets/BasicForm_Filled.pdf"));
    }
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/create-and-fill-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import java.io.IOException;
import java.nio.file.Paths;

public class App {

    public static void main(String[] args) throws IOException {

        // Define an HTML form with two text input fields
        String formHTML = "<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=''>"
            + "</form>"
            + "</body>"
            + "</html>";

        // Enable HTML-to-form-field conversion during rendering
        ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
        renderOptions.setCreatePdfFormsFromHtml(true);

        // Render HTML to PDF and save the blank template
        PdfDocument.renderHtmlAsPdf(formHTML, renderOptions)
            .saveAs(Paths.get("assets/BasicForm.pdf"));

        // Load the template and fill in field values
        PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm.pdf"));
        form.getForm().setFieldValue("firstname", "Minnie");
        form.getForm().setFieldValue("lastname", "Mouse");

        // Save the completed form to a new file
        form.saveAs(Paths.get("assets/BasicForm_Filled.pdf"));
    }
}
JAVA

最初のブロックでは、ChromePdfRenderOptionssetCreatePdfFormsFromHtml(true) を使用し、レンダリングエンジンに対して、HTMLの <input> 要素を静的なテキストではなく、ライブPDFフォームフィールドとして扱うよう指示しています。 レンダリングされたPDFは再利用可能なテンプレートとして保存されます。 2番目のブロックでは、そのテンプレートを読み込み、各フィールドの名前ごとに getForm().setFieldValue() を呼び出し、結果を別の出力ファイルに書き出します。これにより、元のテンプレートは将来の使用のためにそのまま残されます。

出力はどのように見えますか?

最初のレンダリングで作成されたPDFには、どのPDFリーダーでも編集可能な空白のテキストフィールドが二つあります。

IronPDFがHTMLからレンダリングした、青色の枠線で囲まれた編集可能な

setFieldValue() の実行後、両方のフィールドに指定されたデータが入力されます:

IronPDF Java output: PDF form with Minnie in the First name field and Mouse in the Last name field, showing successfully filled form data

作成していない既存のPDFフォームを入力するにはどうすればよいですか?

多くの実際のワークフローでは、すでに名前付きフィールドを含むサードパーティのPDFテンプレート(政府のフォーム、保険の書類、ベンダー契約書など)を受け取ります。 これらの読み込みと入力は同じプロセスです:PdfDocument.fromFile() を使用してドキュメントを読み込み、その後 getForm().setFieldValue() を使用して各フィールドを名前で設定します。

//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-existing-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;

public class FillExistingForm {

    public static void main(String[] args) throws IOException {

        // Load a third-party fillable PDF
        PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));

        // Set text field values by field name
        form.getForm().setFieldValue("applicant_name", "Jane Smith");
        form.getForm().setFieldValue("date_of_birth", "1985-06-14");
        form.getForm().setFieldValue("reference_number", "REF-2024-00421");

        // Save the completed application
        form.saveAs(Paths.get("output/application_filled.pdf"));
    }
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-existing-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;

public class FillExistingForm {

    public static void main(String[] args) throws IOException {

        // Load a third-party fillable PDF
        PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));

        // Set text field values by field name
        form.getForm().setFieldValue("applicant_name", "Jane Smith");
        form.getForm().setFieldValue("date_of_birth", "1985-06-14");
        form.getForm().setFieldValue("reference_number", "REF-2024-00421");

        // Save the completed application
        form.saveAs(Paths.get("output/application_filled.pdf"));
    }
}
JAVA

既存のPDFでフィールド名を確認するには、Adobe Acrobat Readerでドキュメントを開き、任意のフィールドを右クリックして、"プロパティ"を選択してください。 フィールド名は"一般"タブに表示されます。 または、プログラム的にすべてのフィールドを繰り返して表示します:

//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/list-form-fields.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.form.FormField;
import java.nio.file.Paths;

public class ListFormFields {

    public static void main(String[] args) throws Exception {

        PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));

        // Print the name and type of every form field
        for (FormField field : form.getForm().getFields()) {
            System.out.println("Field: " + field.getName()
                + " | Type: " + field.getType());
        }
    }
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/list-form-fields.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.form.FormField;
import java.nio.file.Paths;

public class ListFormFields {

    public static void main(String[] args) throws Exception {

        PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));

        // Print the name and type of every form field
        for (FormField field : form.getForm().getFields()) {
            System.out.println("Field: " + field.getName()
                + " | Type: " + field.getType());
        }
    }
}
JAVA

データを書き込む前にフィールド名を出力することで、名前が一致しない場合に setFieldValue() が黙って失敗するのを防ぎます。 PDFドキュメント内のフィールド名は大文字と小文字が区別されるため、"firstname""FirstName" は異なるフィールドとして扱われます。

ご注意IronPdfの getForm().getFields() は、FormField オブジェクトのリストを返します。 それぞれが getType()、および getValue() を公開しています。 これらは、データベースやCSVファイルなどの外部データソースからフィールド名を読み取る動的なフォーム入力ルーチンを構築する際に便利です。)]

Javaでチェックボックスとラジオボタンを入力するにはどうすればよいですか?

テキストフィールドには文字列値を直接入力できますが、チェックボックスやラジオボタンには、PDFの作成時に定義された特定のエクスポート値が必要です。各フィールドに対して、正しいエクスポート値の文字列と共に setFieldValue() を使用してください。

//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-checkboxes-radio.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;

public class FillCheckboxesAndRadio {

    public static void main(String[] args) throws Exception {

        PdfDocument form = PdfDocument.fromFile(Paths.get("templates/survey.pdf"));

        // Check a checkbox by setting its exported value (often "Yes" or "On")
        form.getForm().setFieldValue("agree_terms", "Yes");

        // Select a radio button option by its exported value
        form.getForm().setFieldValue("preferred_contact", "email");

        form.saveAs(Paths.get("output/survey_filled.pdf"));
    }
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-checkboxes-radio.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;

public class FillCheckboxesAndRadio {

    public static void main(String[] args) throws Exception {

        PdfDocument form = PdfDocument.fromFile(Paths.get("templates/survey.pdf"));

        // Check a checkbox by setting its exported value (often "Yes" or "On")
        form.getForm().setFieldValue("agree_terms", "Yes");

        // Select a radio button option by its exported value
        form.getForm().setFieldValue("preferred_contact", "email");

        form.saveAs(Paths.get("output/survey_filled.pdf"));
    }
}
JAVA

チェックボックスのエクスポート値は、通常、"On"、またはフォーム作成者が設定したカスタム文字列となります。 ラジオボタングループの場合、グループ内の各オプションは同じフィールド名を共有しますが、ユニークなエクスポート値を持っています。 前のセクションで述べたフィールドリスティング手法を利用して、書き込みする前に正確なエクスポート値を確認してください。

重要もし setFieldValue() がチェックボックスやラジオボタンの選択に使用されていないようであれば、エクスポート値の文字列が間違っている可能性があります。 (正しい文字列を取得するには、手動でチェックしたPDFのコピーで、getFields() のフィールドをリストアップし、getValue() を確認してください。)}]

JavaでPDFフォームにドロップダウンリストを入力するにはどうすればよいですか?

ドロップダウンリストフィールド(コンボボックスフィールドとも呼ばれる)は、テキストフィールドと同じAPIを使用します。 オプションのエクスポート値を文字列として setFieldValue() に渡してください。 エクスポート値は通常は見えるオプションテキストですが、フォーム作成者が別の基礎となる値を定義している場合があります。

//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-dropdown.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;

public class FillDropdown {

    public static void main(String[] args) throws Exception {

        PdfDocument form = PdfDocument.fromFile(Paths.get("templates/registration.pdf"));

        // Set a dropdown/combo box field to a specific option
        form.getForm().setFieldValue("country", "United States");

        // Set a list box field (multi-select may require comma-separated values)
        form.getForm().setFieldValue("subscription_tier", "Professional");

        form.saveAs(Paths.get("output/registration_filled.pdf"));
    }
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-dropdown.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;

public class FillDropdown {

    public static void main(String[] args) throws Exception {

        PdfDocument form = PdfDocument.fromFile(Paths.get("templates/registration.pdf"));

        // Set a dropdown/combo box field to a specific option
        form.getForm().setFieldValue("country", "United States");

        // Set a list box field (multi-select may require comma-separated values)
        form.getForm().setFieldValue("subscription_tier", "Professional");

        form.saveAs(Paths.get("output/registration_filled.pdf"));
    }
}
JAVA

ドロップダウンのエクスポート値が表示ラベルと異なる場合は、getFields() を使用して、そのフィールドで利用可能なオプションを確認してください。 フィールドの定義で任意のオプションと一致しない値を渡すと、選択は変更されず、例外はスローされないので、バッチ実行の前にエクスポート値を検証することでデータ損失を防ぎます。

ヒントコンボボックスの利用可能なすべてのオプションを確認するには、getOptions()を呼び出します。 これにより、そのドロップダウンの有効なエクスポート値のリストが返されます。)]

Javaで入力されたPDFフォームをフラット化するにはどうすればよいですか?

フラット化はすべてのフォームフィールドを静的で編集不可能なコンテンツに変換します。 これにより受信者が送信データを変更することを防ぎ、多くのアーカイブおよびコンプライアンス使用事例で必要とされます。 IronPDFはそのPDF操作機能の一部としてフォームのフラット化をサポートしています。

//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/flatten-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;

public class FlattenForm {

    public static void main(String[] args) throws Exception {

        PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm_Filled.pdf"));

        // Flatten all form fields -- values become static text
        form.getForm().flatten();

        form.saveAs(Paths.get("output/BasicForm_Archived.pdf"));
    }
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/flatten-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;

public class FlattenForm {

    public static void main(String[] args) throws Exception {

        PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm_Filled.pdf"));

        // Flatten all form fields -- values become static text
        form.getForm().flatten();

        form.saveAs(Paths.get("output/BasicForm_Archived.pdf"));
    }
}
JAVA

flatten()の実行後、出力されたPDFには対話型のフォームフィールドは残っていません。 ドキュメントサイズは通常減少し、フォームフィールドオーバーレイレイヤーが取り除かれます。 フラット化されたPDFは、送信された値の編集リスクなしに配布するのに安全です。

JavaでのPDFフォーム入力の次のステップは何ですか?

IronPDFは、JavaでPDFフォームを入力するための集中した、ボイラープレートの少ないAPIを提供します。 getForm() メソッドを使用すると、テキストフィールド、チェックボックス、ラジオボタン、およびドロップダウンリストに直接アクセスできます。 アーカイブが必要な場合、flatten() は入力されたすべてのデータを静的コンテンツとしてロックします。

PDFドキュメントワークフローの次のステージのために、これらのガイドを調査してください:

IronPDF for Javaの無料トライアルを開始し、自分のプロジェクトでフォーム入力をテストしてください。 デプロイの準備ができたら、IronPDFライセンスオプションを表示して、チームのニーズに合ったプランを見つけてください。

よくある質問

JavaでPDFフォームに入力する基本的な手順は?

IronPDF Maven依存関係を追加し、PdfDocument.fromFile()でPDFを読み込み、getForm()を使ってフォームフィールドにアクセスし、各フィールドに対してsetFieldValue(fieldName, value)を呼び出し、saveAs()で結果を保存します。

既存のPDFでフィールド名を発見するにはどうすればよいですか?

Adobe Acrobat ReaderでPDFを開き、任意のフィールドを右クリックしてプロパティを選択します。フィールド名は[一般]タブに表示されます。または、getForm().getFields()を呼び出してすべてのフィールドを反復処理し、それぞれのgetName()getType()をプログラムで印刷できます。

Javaでチェックボックスやラジオボタンを埋めるにはどうすればよいですか?

フィールドのエクスポート値文字列を使ってsetFieldValue()を使用します。チェックボックスのエクスポート値は通常YesまたはOnです。ラジオボタングループの場合、各オプションは同じフィールド名を持ちますが、ユニークなエクスポート値を持ちます。フィールドが応答しない場合は、手動でチェックされたPDFのコピーでgetValue()を調べ、正しい文字列を見つけてください。

ドロップダウンリストフィールドを記入するにはどうすればよいですか?

オプションのエクスポート値を使ってsetFieldValue(fieldName, optionValue)を呼び出します。エクスポート値は通常、視覚的なオプションテキストです。プログラムで利用可能なオプションをリストするには、FormFieldFormComboBoxFieldにキャストし、getOptions()を呼び出してください。

PDFフォームのフラット化は何をしますか?

フラット化はすべてのインタラクティブフィールドを静的な編集不可のコンテンツに変換します。保存する前にgetForm().flatten()を呼び出します。結果のPDFは受取人によって編集できず、多くのアーカイバルとコンプライアンスワークフローに必要です。

他のツールで作成されたフォームをIronPDFで記入できますか?

はい。PdfDocument.fromFile()は作成方法に関係なく標準的な記入可能なPDFをロードします。フィールド名は大文字と小文字が区別され、フォーム作成者によって異なるため、setFieldValue()を呼び出す前にgetForm().getFields()を使用してフィールド名を確認してください。

Darrius Serrant
フルスタックソフトウェアエンジニア(WebOps)

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得し、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに惹かれ、コンピューティングを神秘的かつアクセス可能なものとし、創造性と問題解決のための完璧な媒体と考えていました。

Iron Softwareでは、新しいものを創造することと、複雑なコンセプトをより理解しやすくすることを楽しんでいます。Resident Developerの一人として、次世代に専門知識を共有するために、学生を教えることにも志願しました。

Darriusにとって、その仕事は価値があり、実際の影響があるため、満足感があります。

準備はできましたか?
バージョン: 2026.5 just released
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか?
サンプルを実行するHTML が PDF に変換されるのを確認します。