フッターコンテンツにスキップ
IRONPDFの使用
IronPDFを使用してプログラムでPDFを記入する方法

C#でプログラム的にPDFフォームを埋める(コーディングチュートリアル)

role="alert">あなたのビジネスはPDFのセキュリティとコンプライアンスの年間サブスクリプションに多くの費用をかけています。デジタル署名、墨消し、暗号化、保護などのSaaSサービスを一括管理するソリューションを提供するIronSecureDocを検討してください。すべて一度の支払いで済みます。IronSecureDocのドキュメントを探索する

このチュートリアルでは、プログラムでPDFファイルのフォームと対話する方法を示します。

.NETライブラリは市場に多く存在しており、それらを使用してC#でプログラム的にPDFフォームを記入することができます。 その一部は理解するのが難しく、一部は有料です。

IronPDFは理解しやすく開発用に無料で提供されているため、最高の.NET Coreライブラリです。 PDFフォームの記入以外にも、IronPDFはHTML文字列、HTMLファイル、URLから新しいPDFを作成することもできます。

C#を使用してPDFフォームをプログラム的に記入する方法を見てみましょう。 まず、デモンストレーション用にコンソールアプリケーションを作成しますが、必要に応じて他のものを使用できます。

Visual Studioプロジェクトを作成

Microsoft Visual Studioを開きます。 新しいプロジェクトを作成 > テンプレートからコンソールアプリケーションを選択 > 次へ > プロジェクトに名前を付けます。 次へ > ターゲットフレームワークを選択します。 作成ボタンをクリックします。 プロジェクトは以下のように作成されます。

C#でプログラム的にPDFフォームを記入する(コーディングチュートリアル)、図1:Visual Studioで新しく作成されたコンソールアプリケーション Visual Studioで新しく作成されたコンソールアプリケーション

IronPDFライブラリのインストール

前述したように、このチュートリアルではIronPDFライブラリが使用されます。 この.NETライブラリを使用する主な理由は、開発用に無料で提供されており、すべての機能が1つのライブラリに含まれているためです。

パッケージマネージャーコンソールに移動します。 次のコマンドを入力します:

Install-Package IronPdf

このコマンドは、私たちのためにIronPDFライブラリをインストールします。 次に、コーディングを始めましょう。

PDFドキュメントを読む

PDFフォームを記入する最初のステップはPDFドキュメントを読むことです。 明らかに、事前に読まずにフォームを記入することはできません。以下のPDFドキュメントはデモンストレーション用に使用されます。 Googleドライブリンクからダウンロードするか、ご自身のドキュメントを使用できます。

C#でプログラム的にPDFフォームを記入する(コーディングチュートリアル)、図2:フォームを記入するためのサンプルPDFファイル フォームを記入するためのサンプルPDFファイル

このファイルを読み取るコードは次のとおりです:

using IronPdf;

// Load the PDF document from the file path
PdfDocument doc = PdfDocument.FromFile(@"D:\myPdfForm.pdf");
using IronPdf;

// Load the PDF document from the file path
PdfDocument doc = PdfDocument.FromFile(@"D:\myPdfForm.pdf");
Imports IronPdf

' Load the PDF document from the file path
Private doc As PdfDocument = PdfDocument.FromFile("D:\myPdfForm.pdf")
$vbLabelText   $csharpLabel

FromFileメソッド内にPDFドキュメントの完全なパスを渡します。 これにより、ローカルシステムからPDFファイルが読み取られます。

PDFフォームを取得する

ロードされたPDFドキュメントからフォームを取得するために次のコード行を書いてください。

var form = doc.Form;
var form = doc.Form;
Dim form = doc.Form
$vbLabelText   $csharpLabel

フォームフィールドを取得する

フォームフィールドの値を設定するために取得するには、IronPDFはフィールド名またはインデックスを使用してフォームフィールドにアクセスすることで非常に簡単にします。 1つずつ見ていきましょう。

名前でフォームフィールドを取得する

次のコードは、名前でフィールドを取得します:

// Retrieve the form field using its name
var field = form.FindFormField("First Name");
// Retrieve the form field using its name
var field = form.FindFormField("First Name");
' Retrieve the form field using its name
Dim field = form.FindFormField("First Name")
$vbLabelText   $csharpLabel

FindFormFieldメソッドは、引数としてフィールド名を取ります。 これはエラー耐性があり、大文字小文字の間違いや部分的なフィールド名の一致を試みます。

インデックスでフォームフィールドを取得する

インデックスを使用してPDFフォームフィールドを取得することもできます。 インデックスはゼロから始まります。 インデックスでフォームフィールドを取得するために使用されるサンプルコードは次のとおりです。

// Retrieve the form field using its index
var field = form.Fields[0];
// Retrieve the form field using its index
var field = form.Fields[0];
' Retrieve the form field using its index
Dim field = form.Fields(0)
$vbLabelText   $csharpLabel

PDFフォームを記入する

次に、PDFフォームを記入するためにすべてのコードを組み合わせましょう。

using IronPdf;

class Program
{
    static void Main()
    {
        // Load the PDF document from the file path
        PdfDocument doc = PdfDocument.FromFile(@"D:\myPdfForm.pdf");

        // Access the PDF form
        var form = doc.Form;

        // Fill out the form fields using their index
        form.Fields[0].Value = "John";
        form.Fields[1].Value = "Smith";
        form.Fields[2].Value = "+19159969739";
        form.Fields[3].Value = "John@email.com";
        form.Fields[4].Value = "Chicago";

        // Save the modified PDF document
        doc.SaveAs(@"D:\myPdfForm.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        // Load the PDF document from the file path
        PdfDocument doc = PdfDocument.FromFile(@"D:\myPdfForm.pdf");

        // Access the PDF form
        var form = doc.Form;

        // Fill out the form fields using their index
        form.Fields[0].Value = "John";
        form.Fields[1].Value = "Smith";
        form.Fields[2].Value = "+19159969739";
        form.Fields[3].Value = "John@email.com";
        form.Fields[4].Value = "Chicago";

        // Save the modified PDF document
        doc.SaveAs(@"D:\myPdfForm.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		' Load the PDF document from the file path
		Dim doc As PdfDocument = PdfDocument.FromFile("D:\myPdfForm.pdf")

		' Access the PDF form
		Dim form = doc.Form

		' Fill out the form fields using their index
		form.Fields(0).Value = "John"
		form.Fields(1).Value = "Smith"
		form.Fields(2).Value = "+19159969739"
		form.Fields(3).Value = "John@email.com"
		form.Fields(4).Value = "Chicago"

		' Save the modified PDF document
		doc.SaveAs("D:\myPdfForm.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

上のサンプルコードは、インデックス値でフォームフィールドを記入します。 以前述べたフィールド名を使用して同じことを行うこともできます。 プログラムを実行して出力を確認しましょう。

記入済みPDFフォーム

C#でプログラム的にPDFフォームを記入する(コーディングチュートリアル)、図3: サンプルPDFファイルで記入済みのフォーム

ライブラリはシンプルなコードでPDFフォームを記入できることがわかります。複雑なロジックは必要ありません。 これがIronPDFが推奨される理由です。

まだフォーム付きのPDFドキュメントがないと仮定しましょう — 心配しないでください、IronPDFはPDFフォームの生成を完全にサポートしています。 以下の手順に従ってください。

新しいPDFフォームドキュメントを生成する

新しいHTMLファイルを作成する

新しいHTMLファイルを作成し、次のコードを貼り付けます:

<!DOCTYPE html>
<html>
<body>

<h2>PDF Forms</h2>

<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname"><br>
  <label for="contact">Contact #:</label><br>
  <input type="text" id="contact" name="contact"><br>
  <label for="email">Email:</label><br>
  <input type="text" id="email" name="email"><br>
  <label for="city">City:</label><br>
  <input type="text" id="city" name="city"><br>
</form> 

</body>
</html>
<!DOCTYPE html>
<html>
<body>

<h2>PDF Forms</h2>

<form action="/action_page.php">
  <label for="fname">First name:</label><br>
  <input type="text" id="fname" name="fname"><br>
  <label for="lname">Last name:</label><br>
  <input type="text" id="lname" name="lname"><br>
  <label for="contact">Contact #:</label><br>
  <input type="text" id="contact" name="contact"><br>
  <label for="email">Email:</label><br>
  <input type="text" id="email" name="email"><br>
  <label for="city">City:</label><br>
  <input type="text" id="city" name="city"><br>
</form> 

</body>
</html>
HTML

この例のHTMLファイルを保存します。フォームの要件に応じてこのHTMLをカスタマイズできます。

次に、C#プログラムに次のコードを書きます。

using IronPdf;

class Program
{
    static void Main()
    {
        // Create an instance of ChromePdfRenderer
        var renderer = new ChromePdfRenderer();

        // Render the HTML file as a PDF
        var pdfDocument = renderer.RenderHtmlFileAsPdf(@"D:\myForm.html");

        // Save the PDF document to the specified file path
        pdfDocument.SaveAs(@"D:\myForm.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        // Create an instance of ChromePdfRenderer
        var renderer = new ChromePdfRenderer();

        // Render the HTML file as a PDF
        var pdfDocument = renderer.RenderHtmlFileAsPdf(@"D:\myForm.html");

        // Save the PDF document to the specified file path
        pdfDocument.SaveAs(@"D:\myForm.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		' Create an instance of ChromePdfRenderer
		Dim renderer = New ChromePdfRenderer()

		' Render the HTML file as a PDF
		Dim pdfDocument = renderer.RenderHtmlFileAsPdf("D:\myForm.html")

		' Save the PDF document to the specified file path
		pdfDocument.SaveAs("D:\myForm.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

プログラムを実行して、生成されたPDFフォームドキュメントを確認します。

C#でプログラム的にPDFフォームを記入する(コーディングチュートリアル)、図3:HTMLファイルから生成されたPDFフォーム HTMLファイルから生成されたPDFフォーム

まとめ

PDFフォームを自動的かつプログラム的に記入することは重要です。 この記事では、C#でIronPDFを使用してPDFフォームを記入するための最も簡単なアプローチを提案しました。 さらに、新しいPDFフォームをゼロから作成する方法も学びました。

Additionally, IronPDF also offers developers methods to extract text and content from a PDF, render charts in PDFs, insert barcodes, enhance security with passwords and watermark programmatically.

他にもIronBarcodeのようにバーコードを扱うための便利なライブラリや、IronXLはExcelドキュメントを扱うためのもの、IronOCRはOCRを扱うためのものがあります。 Iron Suiteを購入すると、これら5つのライブラリを2つの価格で取得できます。詳細はIron Softwareライセンスページをご覧ください。

よくある質問

C#を使用してPDFフォームをプログラミングで記入するにはどうすればよいですか?

IronPDFは、PdfDocument.FromFileを使用してドキュメントをロードし、doc.Form.Fieldsを使用してフォームフィールドにアクセスし、それらの値を設定することで、C#でPDFフォームをプログラミングで記入することを可能にします。

PDFフォームを記入するためにC#プロジェクトをセットアップする際の手順は何ですか?

まず、Visual Studioでコンソールアプリケーションを作成します。それから、パッケージマネージャーコンソールを使用してInstall-Package IronPdfでIronPDFをインストールします。PdfDocument.FromFileを使用してPDFをロードし、必要に応じてフォームフィールドを操作します。

IronPDFはC#でHTMLから新しいPDFフォームを生成するために使用できますか?

はい、IronPDFはChromePdfRendererクラスを使用してHTMLフォームをPDFドキュメントにレンダリングすることで、新しいPDFフォームを生成できます。これはウェブフォームの入力に基づいた動的なPDF生成を可能にします。

PDFフォーム処理にIronPDFを使用することの主な利点は何ですか?

IronPDFは.NETアプリケーションへのPDFフォーム処理の統合を支援するユーザーフレンドリーなアプローチを提供します。フォームの記入、テキスト抽出、ドキュメントのセキュリティをサポートしており、簡単な統合と無料の開発機能を提供しています。

IronPDFを使用してPDFフォームからテキストを抽出するにはどうすればよいですか?

IronPDFはPDFフォームからテキストを抽出するためのメソッドを提供します。PdfDocument.FromFileでドキュメントをロードした後、pdfDocument.ExtractAllText()のようなメソッドを使用してテキストコンテンツにアクセスし抽出できます。

PDFドキュメントのセキュリティを.NETライブラリを使用して確保することは可能ですか?

はい、IronPDFはPDFセキュリティを強化する機能を提供しており、デジタル署名、墨消し、暗号化を含んでPDFドキュメント内の機密情報を保護します。

PDFフォームフィールドが期待通りに更新されない場合、どのようなトラブルシューティング手順を取ることができますか?

フォームフィールドがIronPDFを使用して正しく識別され、アクセスされていることを確認してください。フィールド名またはインデックスを確認し、doc.Form.FindFormField('FieldName').Value = 'New Value'を使用してフィールド値を更新します。

C#でフォームフィールドを記入した後、変更されたPDFドキュメントをどのように保存しますか?

IronPDFを使用してフォームフィールドを変更した後、pdfDocument.SaveAs('path/to/newfile.pdf')を使って変更を反映した更新済みドキュメントを保存します。

IronPDFはPDFフォーム処理以外に他のドキュメント操作も扱えますか?

はい、IronPDFは多様で、テキスト抽出、チャートレンダリング、ドキュメントのセキュリティ強化を含む様々なPDF操作を扱うことができ、PDF管理のための包括的なツールです。

PDFフォームを扱う開発者にとってIronPDFはどのような利点がありますか?

IronPDFはPDFフォームを記入し操作するための簡単なAPIを提供し、HTML-to-PDFレンダリングや.NETアプリケーションとの統合などの機能を通じて、開発者の生産性を高めます。

IronPDF は .NET 10 をサポートしていますか? また、IronPDF を使用して C# で PDF フォームに入力する場合、それはどのような意味を持ちますか?

はい、IronPDFは.NET 8および.NET 9を含む最新の.NETバージョンをサポートしており、次期リリース(2025年11月予定)の.NET 10にも既に準拠しています。つまり、.NET 10との完全な互換性を保ちながら、C#でのフォーム入力やPDF操作にIronPDFを引き続きご利用いただけます。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。