跳過到頁腳內容
使用IRONPDF
如何使用 IronPDF 以程式設計方式填寫 PDF

程式化填寫C#中的PDF表單(編碼教程)

role="alert">您的企業在年度訂閱 PDF 安全性和合規性方面花費過多。考慮IronSecureDoc,它提供數字簽名、編輯、加密和保護等 SaaS 服務管理解決方案,這些只需一次性付款即可。探索 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 庫的主要原因是它對開發免費且提供所有功能於單個庫中。

進入包管理控制台。 輸入以下命令:

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 使這一過程非常簡單,可通過字段名或索引訪問表單字段。 讓我們一一討論。

通過名稱獲取表單字段

以下代碼將通過名稱獲取字段:

// 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 Software 授權頁面以獲取更多詳情。

常見問題解答

如何使用 C# 以程式設計方式填寫 PDF 表單?

IronPDF 讓您可以透過PdfDocument.FromFile載入文件並使用doc.Form.Fields存取表單欄位來設定其值,以程式設計方式在 C# 中填入 PDF 表單。

用 C# 項目填寫 PDF 表單需要哪些步驟?

首先,在 Visual Studio 中建立一個控制台應用程式。然後,使用套件管理器控制台,透過Install-Package IronPdf命令安裝 IronPDF。使用PdfDocument.FromFile載入 PDF 文件,並根據需要操作表單欄位。

IronPDF 能否用於在 C# 中從 HTML 產生新的 PDF 表單?

是的,IronPDF 可以使用ChromePdfRenderer類別將 HTML 表單渲染成 PDF 文檔,產生新的 PDF 表單。這實現了基於網頁表單輸入動態產生 PDF 文件的功能。

在.NET應用程式中使用IronPDF處理PDF表單的主要優點是什麼?

IronPDF 提供了一種使用者友好的方式來將 PDF 表單處理整合到 .NET 應用程式中。它支援表單填寫、文字擷取和文件安全功能,並且易於集成,開發功能免費。

如何使用 IronPDF 從 PDF 表單中提取文字?

IronPDF 提供了從 PDF 表單中提取文字的方法。使用PdfDocument.FromFile載入文件後,您可以使用諸如pdfDocument.ExtractAllText()之類的方法存取和提取文字內容。

是否可以使用 .NET 函式庫來確保 PDF 文件的安全性?

是的,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 管理工具。

IronPDF 能為使用 PDF 表單的開發人員帶來哪些好處?

IronPDF 提供了一個簡單的 API 來填寫和操作 PDF 表單,透過提供 HTML 到 PDF 的渲染和與 .NET 應用程式的整合等功能,提高了開發人員的生產力。

IronPDF 是否支援 .NET 10?如果支持,這對使用 IronPDF 在 C# 中填寫 PDF 表單意味著什麼?

是的,IronPDF 支援包括 .NET 8 和 .NET 9 在內的現代 .NET 版本,並且已經相容於即將發布的 .NET 10(計劃於 2025 年 11 月發布)。這表示您可以繼續使用 IronPDF 在 C# 中進行表單填寫和 PDF 操作,並且與 .NET 10 完全相容。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。