# PythonでPDFフォームフィールドを埋める方法
IronPDFを使用して、PythonでプログラムによるPDFフォームの入力を行います: 既存のPDFをロードし、名前で各フィールドを特定し、値を割り当て、数行で結果を保存します。
*as-heading:2(クイックスタート: PDFフォームフィールドを埋める)*
```python
1. Install IronPDF: `pip install ironpdf`
2. Load your PDF: `form_document = PdfDocument.FromFile("form.pdf")`
3. Find form field: `field = form_document.Form.FindFormField("fieldname")`
4. Set field value: `field.Value = "Your Value"`
5. Save filled PDF: `form_document.SaveAs("filled_form.pdf")`
```
<div class="hsg-featured-snippet">
<h2>PythonでPDFフォームフィールドを埋める方法</h2>
<ol>
<li><a class="js-modal-open" data-modal-id="download-modal" href="#download-modal">IronPDF Pythonライブラリをインストール</a></li>
<li>フォームフィールドを含む既存のPDFドキュメントをロードします</li>
<li><strong>Form</strong>属性の<code>FindFormField</code>メソッドを使用して、名前でフォームフィールドにアクセスします</li>
<li>フィールドの<strong>Value</strong>属性に新しい値を割り当てます</li>
<li><code>SaveAs</code>を使用して、変更されたドキュメントをエクスポートします</li>
</ol>
</div>
ウェブUIを通じてデータ収集を行い、アーカイブや下流処理用に埋めたPDFを生成することは一般的なドキュメント自動化パターンです。 PDFフォームにデータを手動で転記するのではなく、Pythonスクリプトがこれを即座に処理できます: フィールド名を読み取って値を入力し、保存や配布のための完成したドキュメントを生成します。
IronPDFでこのワークフローは簡潔になります: HTMLからフォームを作成するための1つのAPI、名前でフィールドを見つけるための1つのメソッド、値を設定するための1つのプロパティ。 野外のPDFフォームには、テキスト入力だけでなく、 チェックボックス、ラジオボタン、ドロップダウンフィールドはすべて同じ`Value`アプローチを通じてサポートされます。 このガイドの残りは、HTMLマークアップからのフォーム生成、既存ドキュメントでのフィールド入力、すべてのフィールドタイプの読み取り、データソースからの一括入力などの重要なシナリオを解説します。
## HTMLを使用してPythonでPDFフォームを作成し、入力する方法は?
IronPDFはHTML`<input>`要素を直接編集可能なPDFフィールドに変換できるので、ウェブスタイルのフォーム定義から記入可能なPDFドキュメントへの直接パスを提供します。 HTMLとCSSを使用してフォームをデザインし、中間の手動ステップを挟まずにすぐに入力できます。
以下の例では、HTMLフォームをPDFとしてレンダリングし、`lastname`フィールドを埋めて結果を保存します。
```python
from ironpdf import *
# Define HTML content for a simple form
form_html = """
<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>
"""
# Instantiate a PDF renderer
renderer = ChromePdfRenderer()
# Enable HTML form-to-PDF-field conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
# Render the HTML content to a PDF file
renderer.RenderHtmlAsPdf(form_html).SaveAs("BasicForm.pdf")
# Load the created PDF document
form_document = PdfDocument.FromFile("BasicForm.pdf")
# Access the "firstname" field and set its value
first_name_field = form_document.Form.FindFormField("firstname")
first_name_field.Value = "Minnie"
print("FirstNameField value: {}".format(first_name_field.Value))
# Access the "lastname" field and set its value
last_name_field = form_document.Form.FindFormField("lastname")
last_name_field.Value = "Mouse"
print("LastNameField value: {}".format(last_name_field.Value))
# Save the filled form
form_document.SaveAs("FilledForm.pdf")
```
`RenderingOptions`属性で設定します。 このフラグがないと、テキスト入力は静的な視覚要素としてレンダリングされ、プログラムで入力することはできません。
レンダリングの後、`PdfDocument.FromFile`が保存されたファイルをメモリに戻します。 `FormField`オブジェクトを返します。 `Value`に割り当てると、そのデータがフィールドに書き込まれます。 `SaveAs`呼び出しはディスクに変更されたドキュメントを書き込みます。
[[t:(PDF変換のためのHTMLフォームを設計する際、フィールド`name`属性を短くしURLセーフに保ちます。 フィールド名にスペースや特殊文字が含まれていると動作しますが、下流の`FindFormField`ルックアップを複雑にする可能性があります。)]]
### 入力前のフォームはどのように見えますか?

レンダリングされたPDFはHTMLフォームの視覚的レイアウトを保持します。 各テキスト入力はクリック可能で編集可能なフィールドとして表示されます。 フォームがPDFリーダーで開かれると、ユーザーは手動でフィールドに入力できるほか、上記のようにAPIを使用してフィールドを入力することもできます。
### 入力後の完成したフォームはどのように見えますか?

入力されたドキュメントには、それぞれのフィールドに書き込まれた値が表示されます。 フォームの構造とフィールドのインタラクティビティは完全に保持されており、PDFはそのまま保存してアーカイブしたり、値を固定して配布用にフラット化することもできます。
## 既存のPDFドキュメントのフィールドをどのように入力しますか?
多くの実世界のワークフローでは、Adobe AcrobatやWord、他のツールで作成されたPDFフォームを使用します。 IronPDFは任意のPDFを[AcroFormフィールド](https://ironpdf.com/python/how-to/python-create-pdf/)を含み、HTMLからのフォームを作成する際に使用したのと同じ`Value`APIを使用してそれらを埋めることができます。 AcroFormは、PDF仕様で定義された[標準インタラクティブフォームフォーマット](https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf)であり、主要なPDFリーダーすべてでサポートされています。
```python
from ironpdf import *
# Load a pre-existing PDF with form fields
form_document = PdfDocument.FromFile("existing_form.pdf")
# Enumerate available field names (helpful when exploring an unfamiliar form)
for field in form_document.Form.Fields:
print("Field name:", field.Name, "| Current value:", field.Value)
# Fill a specific field by name
applicant_name_field = form_document.Form.FindFormField("applicant_name")
applicant_name_field.Value = "Jane Smith"
# Fill a second field
date_field = form_document.Form.FindFormField("application_date")
date_field.Value = "2026-05-03"
# Save the filled document
form_document.SaveAs("submitted_application.pdf")
```
フィールド名が文書化されていないフォームを扱う際は埋める前に`form_document.Form.Fields`を繰り返すことが有用です。 ループはすべてのフィールド名とその現在の値を印刷し、書き込まれる前のフォームが期待するものの完全な地図を提供します。
[[i:(IronPDFは、標準インタラクティブフォームフォーマットであるAcroFormフィールドをサポートしています。 スキャンしたPDFや画像のみのドキュメントにはフィールドデータが含まれていません。 [IronOCR](https://ironsoftware.com/csharp/ocr/)を使用して、これらのドキュメントから最初にテキストを抽出します。)]]
## チェックボックスや他のフィールドタイプとどのように作業しますか?
テキストフィールドは最も一般的なフォーム要素ですが、実世界のフォームにはチェックボックスやラジオボタン、コンボボックスのドロップダウンが含まれています。 IronPDFは同じ`Form.Fields`コレクションを通じてすべてを公開します。 `Value`プロパティは各タイプに対して適切な文字列を受け入れます。
以下の表は、最も一般的な非テキストフィールドタイプに対して受け入れられる値を示しています。
<table class="content__data-table" data-content-table>
<caption>IronPDF PDFフォームフィールドの非テキスト入力タイプに対する値の慣例</caption>
<thead>
<tr><th>フィールドタイプ</th><th>HTML入力タイプ</th><th>設定する値</th><th>注意事項</th></tr>
</thead>
<tbody>
<tr><td>チェックボックス</td><td><code>type="checkbox"</code></td><td><code>"true"</code> または <code>"false"</code></td><td>大文字小文字が区別されず、文字列として使用します。</td></tr>
<tr><td>ラジオボタン</td><td><code>type="radio"</code></td><td>選択するオプションの<code>value</code>属性</td><td>同じ名前、オプションごとに異なる値</td></tr>
<tr><td>ドロップダウン(コンボボックス)</td><td><code><select></code></td><td>目的のオプションの表示されたテキスト</td><td>既存のオプションと完全に一致する必要があります</td></tr>
</tbody>
</table>
```python
from ironpdf import *
# Load a form with multiple field types
form_document = PdfDocument.FromFile("application_form.pdf")
# Fill a text field
form_document.Form.FindFormField("full_name").Value = "Alex Rivera"
# Check a checkbox (use string "true")
form_document.Form.FindFormField("agree_terms").Value = "true"
# Select a radio button option by its value attribute
form_document.Form.FindFormField("employment_status").Value = "full_time"
# Select a dropdown option by display text
form_document.Form.FindFormField("country").Value = "United States"
form_document.SaveAs("completed_application.pdf")
```
`Value`プロパティを公開します。 ラジオグループやドロップダウンの場合、書き込む前に既存の`Value`を印刷することでそのフィールドの現在の選択を表示し予想される形式を確認します。
[[e:(`None`を返した場合、フィールド名はドキュメントには存在しません。 スペルを確認してフィールドが存在することを確認するために`form_document.Form.Fields`を通じてすべての名前を印刷します。 フィールド名は大文字小文字を区別します。)]]
## データソースからフォームを一括入力する方法は?
スプレッドシートやデータベースクエリから1つのレコードごとに1つの埋められたPDFを生成することは、プログラムでフォームを入力するためにチームが最もよく使う理由の1つです。 IronPDFはこれを、各入力操作をステートレスと見なすことで処理します: テンプレートをロードし、フィールドを入力し、一意の名前で保存し、繰り返します。
```python
from ironpdf import *
# Sample data records (replace with database or CSV source)
applicants = [
{"name": "Alice Johnson", "id": "A001", "date": "2026-05-03"},
{"name": "Bob Williams", "id": "B002", "date": "2026-05-03"},
{"name": "Carol Davis", "id": "C003", "date": "2026-05-03"},
]
for applicant in applicants:
# Load template from disk on each iteration to avoid cross-contamination
form_document = PdfDocument.FromFile("application_template.pdf")
# Fill each field from the data record
form_document.Form.FindFormField("applicant_name").Value = applicant["name"]
form_document.Form.FindFormField("applicant_id").Value = applicant["id"]
form_document.Form.FindFormField("submission_date").Value = applicant["date"]
# Save each filled form with a unique filename
output_path = f"output/application_{applicant['id']}.pdf"
form_document.SaveAs(output_path)
print(f"Saved: {output_path}")
```
ループ内でテンプレートをロードすることで、前もって1回ロードするのではなく、反復を通してフィールド値が蓄積されることを防ぎます。 それぞれの`PdfDocument.FromFile`への呼び出しはテンプレートの新規コピーを生成するため、1レコードの入力は次のものに影響を与えません。
[[n:(高ボリュームのバッチ実行の場合、テンプレートを`PdfDocument.FromFile`で一度ロードし、APIがサポートする場合にはコピー機能を使用することを考慮してください。 デプロイする前にボリューム要件に対する両方のアプローチをベンチマークしてください。)]]
IronPDFは、一度に生成できるドキュメントの数に対して人工的な制限を課していません。 スループットは、利用可能なメモリと出力先のI/O速度によって決まります。 非常に大きなバッチでは、ローカルSSDに書き込み、その後ネットワークストレージに転送する方が、直接ネットワーク共有に書き込むより高速です。
## 入力済みのPDFフォームをどのようにフラット化しますか?
フラット化はインタラクティブなフォームフィールドを静的なページコンテンツに変換し、現在の値を固定します。 フラット化されたPDFは、アーカイブ、印刷、またはフィールド値を変更できない受信者への送信に最適です。
IronPDFは[フィールドをフラット化する方法](https://ironpdf.com/how-to/pdf-image-flatten-csharp/)を提供し、任意にロードされた`PdfDocument`で動作します。 フィールドを入力した後に呼び出し、結果を保存します。
```python
from ironpdf import *
# Load and fill a form
form_document = PdfDocument.FromFile("application_template.pdf")
form_document.Form.FindFormField("full_name").Value = "Jordan Lee"
form_document.Form.FindFormField("application_date").Value = "2026-05-03"
# Flatten all form fields to lock values as static content
form_document.Form.Flatten()
# Save the flattened, non-editable PDF
form_document.SaveAs("archived_application.pdf")
```
`Flatten()`の後、ドキュメントはもはやインタラクティブフィールドオブジェクトを含まなくなります。 ファイルを受信する下流システムは、通常のテキストコンテンツを表示し、フォームウィジェットではなくなります。 これは、PDF/Aアーカイブ準拠にとって重要であり、マルチステップレビューのパイプラインで意図しない編集を防ぐためです。
[[t:(ドキュメントがアーカイブのために予定されている場合、保存前にすぐにフラット化します。 同じドキュメントを最初にレビューして修正する場合は、最終的な保存までフィールドをインタラクティブのままにしてください。)]]
## PythonにIronPDFをインストールするには?
IronPDFは[PyPI](https://pypi.org/project/ironpdf/)から入手できます。 pipでインストールします:
```shell
:ProductInstall
```
インストール後、スクリプトの最上部で`from ironpdf import *`でライブラリをインポートします。 評価のために[無料トライアルライセンス](https://ironpdf.com/python/get-started/license-keys/)が利用可能です。 本番環境のデプロイには、PDF操作が実行される前に`License.LicenseKey`プロパティを通じた商用ライセンスキーの設定が必要です。
[[i:(IronPDFはPython 3.6以降が必要です。 パッケージには、HTMLからPDFへのレンダリングに使用されるヘッドレスChromiumエンジンがバンドルされているため、最初のインポートにはエンジンが初期化されるまで少し時間がかかることがあります。)]]
## PythonでのPDFフォーム自動化の次のステップは?
このガイドでは、HTMLからのPDFフォームの作成、既存ドキュメントのフィールド入力、チェックボックスやドロップダウンフィールドの操作、データレコードからの入力済みフォームのバッチ生成、およびアーカイブのための入力済みPDFのフラット化をカバーしました。 各技法は同じコアAPIを使用します:名前でフィールドを特定するために`SaveAs`。
IronPDF for Pythonで関連する機能を探るために:
- [HTMLテンプレートからPDFフォームを作成](https://ironpdf.com/python/how-to/python-create-pdf/): HTMLとCSSを使用して完全なフォームレイアウトをデザインします
- [既存のPDF フォームの編集と入力](https://ironpdf.com/how-to/edit-forms/): IronPDF外で作成されたドキュメントのAcroFormフィールドを使用します
- [PDFフォームフィールドのフラット化](https://ironpdf.com/how-to/pdf-image-flatten-csharp/): アーカイブまたは印刷準備用の配布のためにフィールド値を固定
- [PDFからテキストと画像を抽出](https://ironpdf.com/python/examples/extract-pdf-text/): 入力済みドキュメントからデータを読み戻す
- [HTMLからPDFへの変換ガイド](https://ironpdf.com/python/tutorials/html-to-pdf/): IronPDFが使用するレンダリングパイプラインの詳細なカバレッジ
- [GitHubでIronPDF Pythonのソース例を探る](https://github.com/iron-software/IronPdfPython.Examples/tree/main/how-to/python-fill-pdf-form): このガイドのすべてのシナリオに対応する実行可能なコード
[無料トライアルを開始してください](#trial-license)、自身 for Pythonプロジェクトでフォーム入力をテストします。 導入の準備ができたら、個別の開発者および企業パッケージ用の[ライセンスオプションを表示します。](#licensing)
from ironpdf import *# Define HTML content for a simple formform_html = """<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>"""# Instantiate a PDF rendererrenderer = ChromePdfRenderer()# Enable HTML form-to-PDF-field conversionrenderer.RenderingOptions.CreatePdfFormsFromHtml = True# Render the HTML content to a PDF filerenderer.RenderHtmlAsPdf(form_html).SaveAs("BasicForm.pdf")# Load the created PDF documentform_document = PdfDocument.FromFile("BasicForm.pdf")# Access the "firstname" field and set its valuefirst_name_field = form_document.Form.FindFormField("firstname")first_name_field.Value = "Minnie"print("FirstNameField value: {}".format(first_name_field.Value))# Access the "lastname" field and set its valuelast_name_field = form_document.Form.FindFormField("lastname")last_name_field.Value = "Mouse"print("LastNameField value: {}".format(last_name_field.Value))# Save the filled formform_document.SaveAs("FilledForm.pdf")
from ironpdf import *
# Define HTML content for a simple form
form_html = """
<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>
"""
# Instantiate a PDF renderer
renderer = ChromePdfRenderer()
# Enable HTML form-to-PDF-field conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
# Render the HTML content to a PDF file
renderer.RenderHtmlAsPdf(form_html).SaveAs("BasicForm.pdf")
# Load the created PDF document
form_document = PdfDocument.FromFile("BasicForm.pdf")
# Access the "firstname" field and set its value
first_name_field = form_document.Form.FindFormField("firstname")
first_name_field.Value = "Minnie"
print("FirstNameField value: {}".format(first_name_field.Value))
# Access the "lastname" field and set its value
last_name_field = form_document.Form.FindFormField("lastname")
last_name_field.Value = "Mouse"
print("LastNameField value: {}".format(last_name_field.Value))
# Save the filled form
form_document.SaveAs("FilledForm.pdf")
from ironpdf import *# Load a pre-existing PDF with form fieldsform_document = PdfDocument.FromFile("existing_form.pdf")# Enumerate available field names (helpful when exploring an unfamiliar form)for field in form_document.Form.Fields: print("Field name:", field.Name, "| Current value:", field.Value)# Fill a specific field by nameapplicant_name_field = form_document.Form.FindFormField("applicant_name")applicant_name_field.Value = "Jane Smith"# Fill a second fielddate_field = form_document.Form.FindFormField("application_date")date_field.Value = "2026-05-03"# Save the filled documentform_document.SaveAs("submitted_application.pdf")
from ironpdf import *
# Load a pre-existing PDF with form fields
form_document = PdfDocument.FromFile("existing_form.pdf")
# Enumerate available field names (helpful when exploring an unfamiliar form)
for field in form_document.Form.Fields:
print("Field name:", field.Name, "| Current value:", field.Value)
# Fill a specific field by name
applicant_name_field = form_document.Form.FindFormField("applicant_name")
applicant_name_field.Value = "Jane Smith"
# Fill a second field
date_field = form_document.Form.FindFormField("application_date")
date_field.Value = "2026-05-03"
# Save the filled document
form_document.SaveAs("submitted_application.pdf")
from ironpdf import *# Load a form with multiple field typesform_document = PdfDocument.FromFile("application_form.pdf")# Fill a text fieldform_document.Form.FindFormField("full_name").Value = "Alex Rivera"# Check a checkbox (use string "true")form_document.Form.FindFormField("agree_terms").Value = "true"# Select a radio button option by its value attributeform_document.Form.FindFormField("employment_status").Value = "full_time"# Select a dropdown option by display textform_document.Form.FindFormField("country").Value = "United States"form_document.SaveAs("completed_application.pdf")
from ironpdf import *
# Load a form with multiple field types
form_document = PdfDocument.FromFile("application_form.pdf")
# Fill a text field
form_document.Form.FindFormField("full_name").Value = "Alex Rivera"
# Check a checkbox (use string "true")
form_document.Form.FindFormField("agree_terms").Value = "true"
# Select a radio button option by its value attribute
form_document.Form.FindFormField("employment_status").Value = "full_time"
# Select a dropdown option by display text
form_document.Form.FindFormField("country").Value = "United States"
form_document.SaveAs("completed_application.pdf")
from ironpdf import *# Sample data records (replace with database or CSV source)applicants = [ {"name": "Alice Johnson", "id": "A001", "date": "2026-05-03"}, {"name": "Bob Williams", "id": "B002", "date": "2026-05-03"}, {"name": "Carol Davis", "id": "C003", "date": "2026-05-03"},]for applicant in applicants: # Load template from disk on each iteration to avoid cross-contamination form_document = PdfDocument.FromFile("application_template.pdf") # Fill each field from the data record form_document.Form.FindFormField("applicant_name").Value = applicant["name"] form_document.Form.FindFormField("applicant_id").Value = applicant["id"] form_document.Form.FindFormField("submission_date").Value = applicant["date"] # Save each filled form with a unique filename output_path = f"output/application_{applicant['id']}.pdf" form_document.SaveAs(output_path) print(f"Saved: {output_path}")
from ironpdf import *
# Sample data records (replace with database or CSV source)
applicants = [
{"name": "Alice Johnson", "id": "A001", "date": "2026-05-03"},
{"name": "Bob Williams", "id": "B002", "date": "2026-05-03"},
{"name": "Carol Davis", "id": "C003", "date": "2026-05-03"},
]
for applicant in applicants:
# Load template from disk on each iteration to avoid cross-contamination
form_document = PdfDocument.FromFile("application_template.pdf")
# Fill each field from the data record
form_document.Form.FindFormField("applicant_name").Value = applicant["name"]
form_document.Form.FindFormField("applicant_id").Value = applicant["id"]
form_document.Form.FindFormField("submission_date").Value = applicant["date"]
# Save each filled form with a unique filename
output_path = f"output/application_{applicant['id']}.pdf"
form_document.SaveAs(output_path)
print(f"Saved: {output_path}")
from ironpdf import *# Load and fill a formform_document = PdfDocument.FromFile("application_template.pdf")form_document.Form.FindFormField("full_name").Value = "Jordan Lee"form_document.Form.FindFormField("application_date").Value = "2026-05-03"# Flatten all form fields to lock values as static contentform_document.Form.Flatten()# Save the flattened, non-editable PDFform_document.SaveAs("archived_application.pdf")
from ironpdf import *
# Load and fill a form
form_document = PdfDocument.FromFile("application_template.pdf")
form_document.Form.FindFormField("full_name").Value = "Jordan Lee"
form_document.Form.FindFormField("application_date").Value = "2026-05-03"
# Flatten all form fields to lock values as static content
form_document.Form.Flatten()
# Save the flattened, non-editable PDF
form_document.SaveAs("archived_application.pdf")
What are the requirements to install IronPDF for Python?
IronPDF requires Python 3.6 or later and is available via PyPI. After installing with pip, import it in your script with `from ironpdf import *`. A free trial license is available for evaluation, with commercial options required for production use.
Does IronPDF support PDF forms with AcroForm fields?
Yes, IronPDF supports AcroForm fields, which are the standard interactive form format defined in the PDF specification. It can populate these fields using the same API as HTML-generated forms.
What is the recommended approach for filling forms with unclear field names?
When dealing with unclear field names, iterating through `form_document.Form.Fields` before filling them can provide a complete mapping of field names and their current values, aiding in filling the forms accurately.