PythonでPDFフォームフィールドを埋める方法
IronPDFを使用して、PythonでプログラムによるPDFフォームの入力を行います: 既存のPDFをロードし、名前で各フィールドを特定し、値を割り当て、数行で結果を保存します。
クイックスタート: PDFフォームフィールドを埋める
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/quickstart.py
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")`
// このコードスニペットは利用できません!
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")`
PythonでPDFフォームフィールドを埋める方法
- IronPDF Pythonライブラリをインストール
- フォームフィールドを含む既存のPDFドキュメントをロードします
- Form属性の
FindFormFieldメソッドを使用して、名前でフォームフィールドにアクセスします - フィールドのValue属性に新しい値を割り当てます
SaveAsを使用して、変更されたドキュメントをエクスポートします
ウェブUIを通じてデータ収集を行い、アーカイブや下流処理用に埋めたPDFを生成することは一般的なドキュメント自動化パターンです。 PDFフォームにデータを手動で転記するのではなく、Pythonスクリプトがこれを即座に処理できます: フィールド名を読み取って値を入力し、保存や配布のための完成したドキュメントを生成します。
IronPDFでこのワークフローは簡潔になります: HTMLからフォームを作成するための1つのAPI、名前でフィールドを見つけるための1つのメソッド、値を設定するための1つのプロパティ。 野外のPDFフォームには、テキスト入力だけでなく、 チェックボックス、ラジオボタン、ドロップダウンフィールドはすべて、同じ FindFormField および Value の手法を通じてサポートされています。 このガイドの残りは、HTMLマークアップからのフォーム生成、既存ドキュメントでのフィールド入力、すべてのフィールドタイプの読み取り、データソースからの一括入力などの重要なシナリオを解説します。
HTMLを使用してPythonでPDFフォームを作成し、入力する方法は?
IronPDFは、HTMLの<input>要素を直接編集可能なPDFフィールドに変換できるため、Web形式のフォーム定義から入力可能なPDFドキュメントへと直接変換することが可能です。 HTMLとCSSを使用してフォームをデザインし、中間の手動ステップを挟まずにすぐに入力できます。
以下の例では、HTMLフォームをPDFとしてレンダリングし、lastnameフィールドに入力を行った後、結果を保存しています。
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/fill-form-from-html.py
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 *
# 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")
CreatePdfFormsFromHtml 属性を True に設定すると、レンダラーは HTML 内の各 RenderingOptions 要素を、対応するインタラクティブ PDF フィールドに変換するよう指示されます。 このフラグがないと、テキスト入力は静的な視覚要素としてレンダリングされ、プログラムで入力することはできません。
レンダリング後、PdfDocument.FromFileは保存されたファイルをメモリに読み込みます。 FindFormField メソッドは、フィールドの name 属性を文字列として受け取り、FormField オブジェクトを返します。 Value に代入すると、データがフィールドに書き込まれます。 SaveAs 呼び出しは、変更されたドキュメントをディスクに書き込みます。
name 属性を短くし、URLセーフなものにしてください。 フィールド名に含まれるスペースや特殊文字は機能しますが、下流の FindFormField 検索を複雑にする可能性があります。入力前のフォームはどのように見えますか?

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

入力されたドキュメントには、それぞれのフィールドに書き込まれた値が表示されます。 フォームの構造とフィールドのインタラクティビティは完全に保持されており、PDFはそのまま保存してアーカイブしたり、値を固定して配布用にフラット化することもできます。
既存のPDFドキュメントのフィールドをどのように入力しますか?
多くの実世界のワークフローでは、Adobe AcrobatやWord、他のツールで作成されたPDFフォームを使用します。 IronPDFは、AcroFormフィールドを含むあらゆるPDFを読み込み、HTMLからフォームを作成する際に使用されるのと同じValue APIを使用して、それらのフィールドに入力を行うことができます。 AcroFormは、PDF仕様で定義された標準インタラクティブフォームフォーマットであり、主要なPDFリーダーすべてでサポートされています。
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/fill-existing-form.py
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 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 を反復処理すると便利です。 ループはすべてのフィールド名とその現在の値を印刷し、書き込まれる前のフォームが期待するものの完全な地図を提供します。
チェックボックスや他のフィールドタイプとどのように作業しますか?
テキストフィールドは最も一般的なフォーム要素ですが、実世界のフォームにはチェックボックスやラジオボタン、コンボボックスのドロップダウンが含まれています。 IronPDFは、これらすべてを同じForm.Fieldsコレクションを通じて提供しています。 Value プロパティは、各型に適した文字列を受け付けます。
以下の表は、最も一般的な非テキストフィールドタイプに対して受け入れられる値を示しています。
| フィールドタイプ | HTML入力タイプ | 設定する値 | 注意事項 |
|---|---|---|---|
| チェックボックス | | "true" または "false" | 大文字小文字が区別されず、文字列として使用します。 |
| ラジオボタン | | 選択するオプションのvalue属性 | 同じ名前、オプションごとに異なる値 |
| ドロップダウン(コンボボックス) | | 目的のオプションの表示されたテキスト | 既存のオプションと完全に一致する必要があります |
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/fill-field-types.py
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 *
# 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")
form_document.Form.Fields を反復処理する際、各 FormField オブジェクトは Name プロパティと Value プロパティを公開します。 ラジオボタンやドロップダウンでは、入力前に既存の Value をPRINTすることで、現在の選択内容を確認し、そのフィールドの期待される形式を確認できます。
FindFormField が None を返す場合、そのフィールド名はドキュメント内に存在しません。 すべての名称を form_document.Form.Fields 経由でPRINTし、スペルを確認するとともに、フィールドが存在することを確認してください。 フィールド名は大文字小文字を区別します。)}]データソースからフォームを一括入力する方法は?
スプレッドシートやデータベースクエリから1つのレコードごとに1つの埋められたPDFを生成することは、プログラムでフォームを入力するためにチームが最もよく使う理由の1つです。 IronPDFはこれを、各入力操作をステートレスと見なすことで処理します: テンプレートをロードし、フィールドを入力し、一意の名前で保存し、繰り返します。
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/bulk-fill-forms.py
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}")
ループ内でテンプレートをロードすることで、前もって1回ロードするのではなく、反復を通してフィールド値が蓄積されることを防ぎます。 PdfDocument.FromFile が呼び出されるたびにテンプレートの新しいコピーが生成されるため、あるレコードへの入力内容が次のレコードに影響を与えることはありません。
PdfDocument.FromFile を使用してテンプレートを一度読み込み、APIが対応している場合はコピー機能を利用することを検討してください。 デプロイする前にボリューム要件に対する両方のアプローチをベンチマークしてください。IronPDFは、一度に生成できるドキュメントの数に対して人工的な制限を課していません。 スループットは、利用可能なメモリと出力先のI/O速度によって決まります。 非常に大きなバッチでは、ローカルSSDに書き込み、その後ネットワークストレージに転送する方が、直接ネットワーク共有に書き込むより高速です。
入力済みのPDFフォームをどのようにフラット化しますか?
フラット化はインタラクティブなフォームフィールドを静的なページコンテンツに変換し、現在の値を固定します。 フラット化されたPDFは、アーカイブ、印刷、またはフィールド値を変更できない受信者への送信に最適です。
IronPDFは、読み込まれたPdfDocumentに対して動作するフォームフィールドのフラット化メソッドを提供しています。 フィールドを入力した後に呼び出し、結果を保存します。
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/flatten-form.py
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")
// このコードスニペットは利用できません!
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アーカイブ準拠にとって重要であり、マルチステップレビューのパイプラインで意図しない編集を防ぐためです。
PythonにIronPDFをインストールするには?
IronPDFはPyPIから入手できます。 pipでインストールします:
pip install ironpdf
インストール後、各スクリプトの先頭で from ironpdf import * を使用してライブラリをインポートしてください。 評価のために無料トライアルライセンスが利用可能です。 本番環境での展開には、PDF 操作を実行する前に、License.LicenseKey プロパティを介して商用ライセンスキーを設定する必要があります。
PythonでのPDFフォーム自動化の次のステップは?
このガイドでは、HTMLからのPDFフォームの作成、既存ドキュメントのフィールド入力、チェックボックスやドロップダウンフィールドの操作、データレコードからの入力済みフォームのバッチ生成、およびアーカイブのための入力済みPDFのフラット化をカバーしました。 各手法は、同じコアAPIを使用しています:SaveAsで結果を出力します。
IronPDF for Pythonで関連する機能を探るために:
- HTMLテンプレートからPDFフォームを作成: HTMLとCSSを使用して完全なフォームレイアウトをデザインします
- 既存のPDF フォームの編集と入力: IronPDF外で作成されたドキュメントのAcroFormフィールドを使用します
- PDFフォームフィールドのフラット化: アーカイブまたは印刷準備用の配布のためにフィールド値を固定
- PDFからテキストと画像を抽出: 入力済みドキュメントからデータを読み戻す
- HTMLからPDFへの変換ガイド: IronPDFが使用するレンダリングパイプラインの詳細なカバレッジ
- GitHubでIronPDF Pythonのソース例を探る: このガイドのすべてのシナリオに対応する実行可能なコード
無料トライアルを開始してください、自身 for Pythonプロジェクトでフォーム入力をテストします。 導入の準備ができたら、個別の開発者および企業パッケージ用のライセンスオプションを表示します。
よくある質問
Pythonでプログラム的にPDFフォームに入力する基本的な手順は何ですか?
pip install ironpdfでIronPDFをインストールし、PdfDocument.FromFile()を使用してPDFをロードし、form_document.Form.FindFormField()でターゲットフィールドを見つけ、field.Valueに値を割り当ててから、SaveAs()で保存します。
PDF文書内の特定のフォームフィールドにアクセスして変更するにはどうすればよいですか?
ロードされたPdfDocumentのForm属性でFindFormFieldメソッドを使用し、フィールド名を文字列として渡します。このメソッドはValueプロパティを読み取ったり設定したりできるFormFieldオブジェクトを返します。
IronPDFでチェックボックスとドロップダウンフィールドを入力する方法は?
チェックボックスには、Valueを文字列"true"または"false"に設定します。ラジオボタンには、Valueを選択したいオプションのvalue属性に設定します。ドロップダウンには、Valueを選択したいオプションの正確な表示テキストに設定します。
複数の文書に対するPDFフォームの一括入力を自動化できますか?
はい。テンプレートをループ内でPdfDocument.FromFile()を使用して各反復で新しいコピーを取得することでロードし、データソースからフィールドを埋め、それぞれの結果をSaveAs()を使用して一意のファイル名で保存します。
フォームのフラット化とは何で、それをいつ使用すればよいですか?
フラット化は対話型フォームフィールドを静的なページコンテンツに変換し、値をロックします。文書がアーカイブ、印刷、またはフィールド値を編集できない受取人への配布を目的とする場合に保存前にform_document.Form.Flatten()を呼び出します。
FindFormFieldがフィールドを見つけられない場合、何が起こりますか?
指定された名前のフィールドが存在しない場合、FindFormFieldはNoneを返します。form_document.Form.Fieldsを反復処理してすべての利用可能なフィールド名を印刷し、正しいスペルを確認します。フィールド名は大文字小文字を区別します。
IronPDFはどのような種類のPDFフォームをサポートしていますか?
IronPDFは、Adobe AcrobatおよびほとんどのPDF作成ツールで使用される標準的なインタラクティブフォームフォーマットのAcroFormフィールドをサポートしています。スキャンされたPDFや画像のみのドキュメントにはAcroFormフィールドが含まれておらず、テキスト抽出が可能になる前にOCR処理が必要です。

