如何在 Java 中建立 PDF 表單

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

IronPDF for Java 允許開發者通過將 HTML 轉換為 PDF 來構建動態、交互式 PDF 表單—文字輸入、複選框、下拉列表和單選按鈕。 HTML 優先的方法讓您可以使用標準 Web 技術完全掌控表單的布局和行為,而無需學習專有的表單 API。 一旦您了解 IronPDF 如何建模表單字段,您還可以以編程方式填寫現有的 PDF 表單

傳統的 Java PDF 程式庫要求您通過低階 PDF 物件構建表單字段。 IronPDF 採取了不同的方法:在HTML和 CSS 中編寫您的表單,然後將其渲染為保留每個互動式字段的 PDF。 該結果與 Adobe Acrobat Reader 和所有主要的 PDF 查看器相容。

快速入門:在 Java 中建立 PDF 表單

  1. 通過Maven Central將 IronPDF for Java 新增到您的專案中
  2. 使用 License.setLicenseKey() 設置您的授權金鑰
  3. 編寫包含標準表單元素的 HTML 字串 (<input>, <textarea>, <select>)
  4. 調用 PdfDocument.renderHtmlAsPdf() 將 HTML 轉換為 PDF
  5. 使用 saveAs() 保存生成的文件
:path=/static-assets/ironpdf-java/howto/create-forms/quickstart-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set license key before any rendering call
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML form with a text field and submit button
String formHtml = "<h2>Registration Form</h2>" +
                  "<form>" +
                  "<label>Name: <input type='text' name='fullname' placeholder='Enter name'></label><br>" +
                  "<button type='submit'>Submit</button>" +
                  "</form>";

// Render HTML to PDF — form fields are preserved
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(formHtml);
pdf.saveAs("registration-form.pdf");
JAVA

我如何在 Java 中建立表單?

IronPDF 通過將W3C HTML 表單規範作為真實來源來從 HTML 建立 PDF 表單。 每個標準表單元素—<input>, <textarea>, <select>, <checkbox><radio>—均被保留在輸出的 PDF 中作為互動式字段。 您可以使用 CSS 為這些元素設置樣式,並包含自定義字體以滿足您的品牌需求。

在建立表單時,IronPDF 在生成的 PDF 中保留了 HTML 表單元素的互動性。 使用者可以直接在他們的 PDF 查看器中填寫表單而無需其他軟體。 這些表單與 Adobe Acrobat Reader 和所有普遍部署的 PDF 查看器配合使用,使其能夠被企業和消費者環境輕易存取。 如需進階渲染選項,請參閱PDF 生成設置文件。

提示IronPDF 無需運行中的瀏覽器或已安裝的 PDF 列印驅動程式。 渲染引擎與程式庫綁定在一起,因此表單在開發機器、CI 伺服器和雲部署上渲染一致。

我如何建立文字輸入和文字區域表單?

文字輸入和文字區域是最常見的 PDF 表單元素—適用於收集名字、電子郵件地址、評論和多行描述。 IronPDF 將 <input type="text"> 映射到單行 PDF 文字字段,將 <textarea> 映射到保留其行列尺寸的多行字段。

HTML 表單元素轉換為 PDF 時保持其功能。 使用者可以通過單擊字段輸入文字,並使用 Tab 鍵在輸入框之間移動,就像在任何 Web 表單中一樣。 預設值、佔位符文字和 HTML5 驗證屬性如 requiredpattern 在轉換過程中會被遵循。 為了細粒度的布局控製,可以將表單元素與自定義紙張尺寸邊距設置結合使用。

:path=/static-assets/ironpdf-java/howto/create-forms/text-input-textarea-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with single-line inputs and a multi-line textarea
String htmlContent = """
<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=''> <br>
            Address: <br> <textarea name='address' rows='4' cols='50'></textarea>
        </form>
    </body>
</html>
""";

// Render HTML — both <input> and <textarea> become interactive PDF fields
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("textAreaAndInputForm.pdf");
JAVA

renderHtmlAsPdf 調用 PdfDocument 類將 HTML 轉換為完全互動式的 PDF。 每個命名的表單字段成為 PDF AcroForm 字典中的獨立字段,可被任何符合標準的 PDF 查看器閱讀。 您在 name 屬性中設置的字段名稱 (firstname, lastname, address) 在輸出中保持不變,並可在提取表單資料時讀回。

輸出 PDF 文件:


Icon Quote related to 輸出 PDF 文件:

我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

Milan Jovanovic related to 輸出 PDF 文件:

Milan Jovanovic

Microsoft MVP

查看案例研究
Icon Quote related to 輸出 PDF 文件:

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle related to 輸出 PDF 文件:

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to 輸出 PDF 文件:

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

David Jones related to 輸出 PDF 文件:

David Jones

首席軟體工程師,Agorus Build

查看案例研究

我如何建立複選框和下拉框表單?

複選框和下拉框涵蓋了 PDF 表單中最常見的兩種選擇模式:二進制開/關選擇和從列表中選擇單項。IronPDF 將 <input type="checkbox"> 映射到 PDF 複選框字段,將 <select> 元素映射到 PDF 下拉框字段。

下拉框字段允許使用者從由 <option> 元素定義的固定選項列表中進行選擇。 您可以通過為選項新增 selected 屬性預選擇一個預設值,使用 <optgroup> 將相關選擇分組,並使用 CSS 使下拉框的外觀與您的文件設計匹配。 在 <select> 元素上的 name 屬性成為生成的 PDF 中的字段名稱,這使得表單資料提取變得簡單。 如需如何使用其他工具處理表單,請參閱Apache PDFBox 專案獲取有關 PDF AcroForm 字段如何儲存此選擇資料的詳細資訊。

:path=/static-assets/ironpdf-java/howto/create-forms/checkbox-combobox-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with a checkbox and a select dropdown
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <h3>Task Completed</h3>
        <label>
            <input type='checkbox' id='taskCompleted' name='taskCompleted'> Mark task as completed
        </label>
        <h3>Select Priority</h3>
        <label for='priority'>Choose priority level:</label>
        <select id='priority' name='priority'>
            <option value='high'>High</option>
            <option value='medium' selected>Medium</option>
            <option value='low'>Low</option>
        </select>
    </body>
</html>
""";

// Render HTML — checkbox and combobox fields are preserved in the PDF
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("checkboxAndComboboxForm.pdf");
JAVA

複選框字段儲存一個布林狀態(在 PDF 表示法中是 /On/Off),下游程式碼在處理提交的表單時可以讀取該狀態。 下拉框儲存所選擇的 <option>value 屬性。 這兩種型別的字段在保存的 PDF 中保持互動性—使用者可以勾選或更改下拉選擇而無需任何額外的插件或 JavaScript。

輸出 PDF 文件:


我如何建立單選按鈕表單?

單選按鈕提供了互斥選擇:一旦使用者選擇了組中的一個選項,將自動取消選擇該組中先前選擇的選項。 IronPDF 將共享 name 屬性的 <input type="radio"> 元素映射到 PDF AcroForm 字典中的單個組合單選字段。

組中的所有單選按鈕必須共享相同的 name 屬性值—這就是在 PDF 中連接它們的原因。 每個按鈕的 value 屬性決定選擇該選項時字段儲存什麼內容。 如果組中的空按鈕被選中,則字段值為 None。 您可以使用載入的 PdfDocument 上的 getForm()getFields() 方法讀取當前選擇,這讓您可以構建預填表單或驗證提交資料的工作流。 有關讀取表單字段的實例,請參閱PDF 表單資料範例

:path=/static-assets/ironpdf-java/howto/create-forms/radio-button-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with a radio button group — all three share name='traveltype'
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        Choose your preferred travel type: <br>
        <input type='radio' name='traveltype' value='Bike'> Bike <br>
        <input type='radio' name='traveltype' value='Car'> Car <br>
        <input type='radio' name='traveltype' value='Airplane'> Airplane
    </body>
</html>
""";

// Render HTML — all three radio inputs become one grouped field in the PDF
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("radioButtonForm.pdf");
JAVA

由於三個 <input type="radio"> 元素共享 name="traveltype" 屬性,IronPDF 在輸出 PDF 中建立一個單個 AcroForm 單選組。 例如,在 Acrobat Reader 中選擇"Car",將字段值設置為 Car 並清除任何之前的選擇。 此行為反映了使用者對 Web 表單中單選按鈕組的預期,使得從 Web 到 PDF 資料收集的過渡自然。

請注意單選按鈕組名稱必須在整個表單中唯一。 在不同邏輯組中重複使用相同的名稱會將它們合併為一個字段,阻止獨立選擇。

我如何應用 PDF 表單建立的最佳實踐?

可靠的 PDF 表單需要注意渲染配置和長期可維護性。 最常見的問題是表單在瀏覽器中看起來正確,但在轉換後失去交互性—通常是由於表單元素缺少 name 屬性。 始終為每個字段指定一個 name ; IronPDF 使用該值作為 PDF 字段標識符,無名字段可能會被刪除或合併。

在分發之前,請在多個 PDF 查看器中測試表單。 Adobe Acrobat Reader 是參考實現,但許多企業環境會部署Foxit Reader或基於瀏覽器的查看器,所有這些稍微不同地處理邊緣情況。 使用 HTML5 驗證屬性 (required, minlength, pattern) 在表單填寫時由 IronPDF 遵循,以在後端監控資料質量, 對於敏感文件,應用密碼和安全設置來防止未經授權的編輯。

部署到生產環境時,在第一次渲染調用之前設置您的授權金鑰,並將其保存在安全的配置儲存中,避免硬編碼。 IronPDF 發布了 AWS、Azure和 Google Cloud環境的部署指南。 請查看授權金鑰指南以獲取有關試用和生產金鑰行為的詳細資訊。

提示勿讓表單字段名稱帶有空格或特殊字元。 某些 PDF 閱讀器會截斷或拒絕包含這些字元的字段名稱,這可能會中斷表單資料提取。

PDF 表單建立的下一步是什麼?

本指南涵蓋了四種主要的互動表單字段型別—文字輸入、文字區域、複選框、下拉框和單選按鈕—並展示了 IronPDF 如何將標準 HTML 表單標記轉換為完全互動的 PDF。 每種型別的字段直接映射到其 HTML 對應物,因此可以在現有網頁表單中使用最小修改的情況下重用。

從這裡開始,考慮探索:

  • 讀取和處理表單資料:使用 getForm()getFields() 從填好的 PDF 中提取提交的數值。 Form data example顯示完整的讀回工作流程。
  • 程式填寫表單:結合表單建立和填充 PDF 表單指南生成對每個接收者已預填好的文件。
  • 保護您的表單:通過security and metadata settings example 增加密碼保護並限制編輯。
  • 高級渲染:控制紙張大小、邊距、頁眉和頁腳,通過PDF 生成設置指南

開始您的免費試用以便在無需付費授權的情況下測試表單建立。 當您的專案準備投入生產時,查看授權選項以了解適合您的部署的計畫。

準備好看看IronPDF還能做什麼嗎? 在這裡檢查完整的 HTML 到 PDF 教程:Java 中的 HTML 到 PDF 轉換

常見問題

在 Java 中製作 PDF 表單最簡單的方法是什麼?

IronPDF for Java 從標準 HTML 建立 PDF 表單。撰寫包含 <input><textarea><select> 元素的 HTML 字串,將其傳遞給 PdfDocument.renderHtmlAsPdf(),然後保存結果。每個命名的欄位在輸出 PDF 中成為互動式 AcroForm 欄位。

IronPDF 在 Java 中支援哪些型別的表單欄位?

IronPDF 將所有標準 HTML 表單元素對應到其 PDF 等效元素:<input type='text'> 變成單行文字欄位,<textarea> 變成多行文字欄位,<input type='checkbox'> 變成核取方塊欄位,<select> 變成組合方塊,並且以相同 name 屬性分組的 <input type='radio'> 變成單選按鈕群組。

我需要 Adobe Acrobat 來在 Java 中建立可填寫的 PDF 嗎?

不需要。IronPDF 包含其自己的渲染引擎,因此不需要桌面 PDF 應用程式。它產生的可填寫 PDF 與 Adobe Acrobat Reader、Foxit Reader 和所有主要的 PDF 檢視器相容。

我可以用 CSS 來在 Java 中設計 PDF 表單嗎?

可以。因為 IronPDF 將 HTML 渲染為 PDF,您可以使用 CSS 控制欄位大小、字體、顏色和佈局。透過 <link> 標籤載入的自訂網頁字體也會嵌入到輸出 PDF 中。

IronPDF for Java 中的單選按鈕群組如何運作?

所有共享相同 name 屬性的 <input type='radio'> 元素都會分組為一個單一的 AcroForm 單選欄位。選擇一個選項會取消其他選項的選擇。如果沒有選擇選項,欄位值為 None。使用載入的 PdfDocument 上的 getForm().getFields() 讀取值。

IronPDF 建立的表單中的資料可以返回嗎?

可以。使用 PdfDocument.fromFile() 載入填寫的 PDF,然後呼叫 getForm().getFields() 迭代所有 AcroForm 欄位並讀取其當前值。欄位名稱對應到您在原始 HTML 中設定的 name 屬性。

Darrius Serrant
全端軟體工程師(WebOps)

Darrius Serrant擁有邁阿密大學的電腦科學學士學位,並在Iron Software擔任全端WebOps行銷工程師。從小就對程式設計有興趣,他認為計算既神秘又易於理解,成為創意和問題解決的完美媒介。

在Iron Software,Darrius喜歡創造新事物並簡化複雜的概念,使其更易於理解。作為我們的常駐開發人員之一,他還志願教學,將他的專業知識傳授給下一代。

對Darrius來說,他的工作是有意義的,因為它有價值且對社會有真正的影響。

準備好開始了嗎?
版本: 2026.6 剛剛發布
Still Scrolling Icon

還在滾動嗎?

想要快速證明嗎?
運行範例 觀看您的HTML變成PDF。