Node.jsでPDFフォームフィールドを埋める方法 Copy for LLMsCopy for LLMs Copy page as Markdown for LLMs
# Node.jsでPDFフォームフィールドを埋める方法
Node.jsでのPDFフォームをプログラム的に埋めることにより、ドキュメントワークフローを自動化できます:データベースレコードで申請書を埋めるから、大量の個人化された証明書を生成するまで。 IronPDF for Node.js はJavaScript環境を離れることなく、既存のPDFをロードし、フォームフィールドに値を書き込み、完成した文書を保存するための簡単なAPIを提供します。
このガイドは、パッケージのインストール、ライセンスキーの適用、テキストフィールド、チェックボックス、ドロップダウン、ラジオボタンの記入、値をロックするためのフォームフィールドのフラット化、出力の保存という完全なワークフローをカバーします。 すべてのコード例は、`@ironsoftware/ironpdf`パッケージを使用しています。
*as-heading:2(クイックスタート: Node.jsで PDF フォームに入力する )*
パッケージをインストールし、以下の数行でフォームをロードして埋めます:
```bash
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/install.sh
npm install @ironsoftware/ironpdf
```
```js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = "YOUR-LICENSE-KEY-HERE";
(async () => {
const pdf = await PdfDocument.fromFile("./form.pdf");
await pdf.setFormFieldValue("firstName", "Jane");
await pdf.setFormFieldValue("email", "jane@example.com");
await pdf.saveAs("./filled-form.pdf");
})();
```
<div class="hsg-featured-snippet">
<h3>最小限のワークフロー(5ステップ)</h3>
1. IronPDFをインストールする: `npm install @ironsoftware/ironpdf`
2. `IronPdfGlobalConfig.getConfig().licenseKey`を介してライセンスキーを設定する
3. 既存のPDFを`PdfDocument.fromFile(path)`でロードする
4. `await pdf.setFormFieldValue(fieldName, value)`で各フィールド値を設定する
5. `await pdf.saveAs(outputPath)`で結果を保存する
</div>
## Node.jsでPDFフォームを埋めるにはどのような前提条件が必要ですか?
以下のコード例を実行する前に、三つのことが整っていることを確認してください: サポートされるNode.jsバージョン、IronPDFのライセンスキー、および`IronPdfEngine`バイナリ。
**Node.jsバージョン**:IronPDFはNode.js 18以降が必要です。 現在のLTSリリースは[公式 for Node.jsウェブサイト](https://nodejs.org/)からダウンロードできます。 ライブラリはすべてのPDF操作にNode.js非同期I/Oを使用するため、`await`またはプロミスチェインが全体の標準パターンです。 パッケージはネイティブESMと`async_hooks`機能に依存しているため、Node.jsの古いバージョンはサポートされません。Node.js 18+が必要です。
**ライセンスキー**:アクティブなIronPDFライセンスキーで完全なAPIを利用できます。 [無料トライアルを開始して](#trial-license)開発とテストにキーを取得するか、生産利用のために[ライセンスの購入](#licensing)を行ってください。 展開オプション(環境変数、構成ファイル、シークレットマネージャー)については、[ライセンスキーの使用](https://ironpdf.com/nodejs/get-started/license-keys/)ガイドを参照してください。
**IronPdfEngine**: Node.jsパッケージには、`IronPdfEngine`、実際のPDF操作を処理するクロスプラットフォームのレンダリングエンジンが含まれています。 セットアップとプラットフォーム固有のメモ(Windows、Linux、macOS)が[IronPdfEngineの使用](https://ironpdf.com/nodejs/get-started/use-ironpdfengine/)ドキュメントにあります。
### Node.jsコードでライセンスキーを設定するにはどうすればいいですか?
アプリケーション起動時にライセンスキーを一度適用し、任意の`PdfDocument`呼び出しの前に:
```js
const { IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
// Apply once at startup -- before any PdfDocument operations
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
```
`process.env.IRONPDF_LICENSE_KEY`を使用して示されるように、環境変数にキーを保存することで、ソース管理から資格情報を守ります。 [開始ガイドの概要](https://ironpdf.com/nodejs/docs/)は、異なる展開環境のための追加の初期化パターンをカバーしています。
---
## どのようにIronPDF for Node.jsをインストールしますか?
Node.js用のIronPDFのインストールには1つのnpmコマンドで済みます。 プロジェクトディレクトリで実行してください:
```bash
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/install-full.sh
npm install @ironsoftware/ironpdf
```
パッケージはTypeScriptの型宣言を同梱しているため、TypeScriptプロジェクトでは`@types`パッケージなしでフルインテリセンスサポートを得ることができます。 Windows、Linux、およびmacOS向けのプラットフォーム固有のバイナリは、インストール時に自動的にダウンロードされます。 npmでの[@Iron Software/ironpdf パッケージ](https://www.npmjs.com/package/@ironsoftware/ironpdf)にはすべての公開済みバージョンとピア依存関係が記載されています。
TypeScriptプロジェクトでは、同梱されている`.d.ts`宣言により、VS CodeやTypeScript言語サービスをサポートする他のエディターでインテリセンスがすぐに機能します。
既存のモノレポやDockerベースのワークフローにIronPDFを追加する手順については[Node.js用IronPDFのドキュメント](/nodejs/docs/)をご覧ください。
---
## プログラムで PDF フォームを埋めるにはどうすればよいですか?
PDFをロードし、そのフォームフィールドに値を書き込むためには、3つの非同期呼び出しが必要です: `saveAs()`。 以下の例は多くのフィールドからなる申請フォームを記入し、必要に応じてフラット化して、配布後に値が変更されないようにします。
### 完全なフォーム記入の例はどのように見えますか?
以下の例は、いくつかのフィールドタイプを持つPDFをロードし、それらを記入して結果を保存するものです。 記入ではなくフォームそのものを作成することに焦点を当てた詳細な例をご覧になるには[PDF Formsの例ページ](https://ironpdf.com/nodejs/examples/form-data/)をご覧ください。
```js
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/fill-pdf-form.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function fillApplicationForm() {
// Load the PDF containing form fields
const pdf = await PdfDocument.fromFile("./forms/application-form.pdf");
// Discover available field names before filling
const fieldNames = await pdf.getFormFieldNames();
console.log("Form fields:", fieldNames);
// Text fields
await pdf.setFormFieldValue("firstName", "Jane");
await pdf.setFormFieldValue("lastName", "Doe");
await pdf.setFormFieldValue("email", "jane.doe@example.com");
await pdf.setFormFieldValue("phone", "+1-555-987-6543");
// Date field
await pdf.setFormFieldValue("dateOfBirth", "03/22/1988");
// チェックボックス fields -- pass "true" or "false" as strings
await pdf.setFormFieldValue("agreeToTerms", "true");
await pdf.setFormFieldValue("subscribeNewsletter", "false");
// Dropdown / select field
await pdf.setFormFieldValue("country", "United States");
// Multi-line text area
await pdf.setFormFieldValue("comments", "Application submitted via automated workflow.");
// Flatten the form to lock values -- prevents further editing
// await pdf.flattenAllFormFields();
await pdf.saveAs("./output/filled-application.pdf");
console.log("Form saved.");
}
fillApplicationForm().catch(console.error);
```
`getFormFieldNames()`を呼び出した後、PDF作成者が使用したフィールド名を教えてくれる返却された配列です。 これは、作成されていないフォームとの統合時にフィールド名のタイプミスを避けるための最速の方法です。
開発中に一度`getFormFieldNames()`を呼び出して、PDFの中の正確なフィールド名を印刷します。 間違った名前をハードコーディングすることは、`setFormFieldValue()`後にフィールドが空のまま表示される最も一般的な原因です。
---
## さまざまなフォームフィールドタイプをどのように扱いますか?
IronPDFは標準的なAcroFormフィールドタイプをサポートしています:テキストボックス、チェックボックス、ラジオボタン、ドロップダウン、リストボックス、および署名フィールド。 `setFormFieldValue()`メソッドは、すべての型の文字列値を受け入れます。チェックボックスおよびラジオフィールドの場合、受け入れる値はPDF内の特定のフィールド定義に依存します。
以下のテーブルは、各フィールドタイプに対する値の形式を示しています:
<table class="content__data-table" data-content-table>
<caption>PDF AcroForm フィールドタイプとその受け入れ可能な値の形式</caption>
<thead>
<tr><th>フィールドタイプ</th><th>値の形式</th><th>翻訳例</th></tr>
</thead>
<tbody>
<tr><td>テキスト / 複数行</td><td>任意の文字列</td><td><code>"Jane Doe"</code></td></tr>
<tr><td>チェックボックス</td><td><code>"true"</code> または <code>"false"</code></td><td><code>"true"</code></td></tr>
<tr><td>ラジオボタン</td><td>オプションのエクスポート値</td><td><code>"女性"</code></td></tr>
<tr><td>ドロップダウン(コンボ)</td><td>オプションの表示テキスト</td><td><code>"アメリカ合衆国"</code></td></tr>
<tr><td>リストボックス(マルチセレクト)</td><td>文字列の配列</td><td><code>["Option1", "Option2"]</code></td></tr>
<tr><td>日付 / 数値</td><td>文字列表現</td><td><code>"2024-06-15"</code></td></tr>
</tbody>
</table>
### チェックボックスとラジオボタンはどう機能しますか?
チェックボックスは`"false"`を受け入れてチェックを外します。 ラジオボタンは選択するオプションのエクスポート値を受け入れます -- エクスポートされた文字列は通常PDFのフィールドプロパティで表示されるもので、表示ラベルとは異なります。
```js
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/field-types.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function handleFieldTypes() {
const pdf = await PdfDocument.fromFile("./forms/complex-form.pdf");
// Radio button -- use the field's export value, not its display label
await pdf.setFormFieldValue("gender", "Female");
// チェックボックス
await pdf.setFormFieldValue("termsAccepted", "true");
// Dropdown
await pdf.setFormFieldValue("preferredContact", "Email");
// Numeric field -- pass the number as a string
await pdf.setFormFieldValue("invoiceAmount", "1250.00");
// Date picker
await pdf.setFormFieldValue("appointmentDate", "2024-06-15");
await pdf.saveAs("./output/complex-form-filled.pdf");
}
handleFieldTypes().catch(console.error);
```
マルチセレクトリストボックスフィールドは同じパターンに従います。 フィールドが複数の選択を許可する場合は、1つの値ではなく文字列の配列を渡します。 署名フィールドは署名グラフィックを表すbase64エンコードされた画像文字列を受け取ることができます。
`getFormFieldNames()`を使用してください。
---
## PDFフォームフィールドを記入した後にフラット化するにはどうすればいいですか?
PDFフォームのフラット化は、すべてのフィールド値を静的なページコンテンツに結合し、対話的層を除去します。 結果として生じる文書はもはや編集できず、配布中の誤った変更を防ぎ、すべてのPDFビューアで一貫したレンダリングを保証します。
すべてのフィールド値を設定した後、ドキュメントを保存する前にロードされたドキュメントに`flattenAllFormFields()`を呼び出します。
```js
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/flatten-form.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function fillAndFlattenForm() {
const pdf = await PdfDocument.fromFile("./forms/contract.pdf");
// Fill the required fields
await pdf.setFormFieldValue("signerName", "Jane Doe");
await pdf.setFormFieldValue("signatureDate", "2024-06-15");
await pdf.setFormFieldValue("agreementAccepted", "true");
// Flatten -- converts interactive fields to static content
await pdf.flattenAllFormFields();
await pdf.saveAs("./output/contract-signed.pdf");
console.log("Contract flattened and saved.");
}
fillAndFlattenForm().catch(console.error);
```
フラット化は最終の配布に適しています -- 契約後の署名、発行後の証明書、承認後の請求書など。 最終化前にさらにレビューが必要な文書の場合、`flattenAllFormFields()`をスキップしてそれなしで保存します。
[[w:(フラット化は保存済みのコピー上で不可逆です。 文書を再生成する必要がある場合は、オリジナルで未記入のPDFをテンプレートとして保持してください。)]]
---
## PDFフォーム自動化の一般的なユースケースは何ですか?
自動化されたフォーム記入は、大量の文書ワークフローから手動データ入力を取り除きます。 次のシナリオは、開発者がIronPDFを使って実装する最も頻繁なパターンをカバーしています。
**申請処理:**応募者のデータをデータベースやREST APIから引き出し、金融サービス、保険、または政府の受付ワークフロー用にPDFフォームに入力します。 記入済みフォームを組み合わせて一つの複数ページの提出パケットを生成するために[PDFのマージ](https://ironpdf.com/nodejs/examples/merge-pdfs/)例を使用します。
**請求書と領収書の生成:**請求書テンプレートに商品ラインデータ、顧客詳細、および計算済み総額を入力します。 [HTMLヘッダーとフッター](https://ironpdf.com/nodejs/examples/html-headers-and-footers/)例で示されているテクニックを使用してページヘッダーとフッターを追加します。
**証明書および資格の生成:**受取人名、完了日、コースタイトルなどで証明書テンプレートをパーソナライズします。 発行後の改ざんを防ぐために[デジタル署名](https://ironpdf.com/nodejs/examples/digitally-sign-a-pdf/)例を使用してセキュリティを追加します。 [PDF/A標準](https://en.wikipedia.org/wiki/PDF/A)は、規制された業界での証明書の長期アーカイブに一般的に必要とされています。
**レポート生成:**分析データやアンケート結果でレポートテンプレートを埋めます。 既存のフォームを記入するのではなく、ゼロからPDFレイアウトを構築する必要がある場合、[HTMLからPDF](https://ironpdf.com/nodejs/tutorials/html-to-pdf/)のチュートリアルを参照してください。
---
## Node.jsでのPDFフォーム入力の次のステップは何ですか?
このガイドでは、PDFの読み込み、テキストフィールド、チェックボックス、ドロップダウン、ラジオボタンの入力、値をロックするためのフォームのフラット化、完成したドキュメントの保存を示しました。 同じ`PdfDocument`インスタンスは、ファイルをリロードすることなくさらなる操作をサポートします--デジタル署名を追加したり、出力を圧縮したり、テキストを抽出します。
[無料トライアルを開始](#trial-license)してプロジェクトでIronPDFをテストするか、[ライセンスオプションを確認](#licensing)して、導入に適したプランを見つけてください。
次に何ができるのかを見てみましょうか? Node.jsの完全なチュートリアルコレクションはこちらをチェックしてください:[Node.jsでHTMLからPDFへ](https://ironpdf.com/nodejs/tutorials/html-to-pdf/)
Ask ChatGPT about this page
Ask Gemini about this page
Ask Perplexity about this page
Node.jsでのPDFフォームをプログラム的に埋めることにより、ドキュメントワークフローを自動化できます:データベースレコードで申請書を埋めるから、大量の個人化された証明書を生成するまで。 IronPDF for Node.js はJavaScript環境を離れることなく、既存のPDFをロードし、フォームフィールドに値を書き込み、完成した文書を保存するための簡単なAPIを提供します。
このガイドは、パッケージのインストール、ライセンスキーの適用、テキストフィールド、チェックボックス、ドロップダウン、ラジオボタンの記入、値をロックするためのフォームフィールドのフラット化、出力の保存という完全なワークフローをカバーします。 すべてのコード例は、@ironsoftware/ironpdfパッケージを使用しています。
パッケージをインストールし、以下の数行でフォームをロードして埋めます:
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/install.sh
npm install @ironsoftware/ironpdf
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/install.sh
npm install @ironsoftware/ironpdf
SHELL
const { PdfDocument , IronPdfGlobalConfig } = require( "@ironsoftware/ironpdf" );
IronPdfGlobalConfig .getConfig().licenseKey = "YOUR-LICENSE-KEY-HERE" ;
( async () => {
const pdf = await PdfDocument .fromFile( "./form.pdf" );
await pdf.setFormFieldValue( "firstName" , "Jane" );
await pdf.setFormFieldValue( "email" , "jane@example.com" );
await pdf.saveAs( "./filled-form.pdf" );
})();
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = "YOUR-LICENSE-KEY-HERE";
(async () => {
const pdf = await PdfDocument.fromFile("./form.pdf");
await pdf.setFormFieldValue("firstName", "Jane");
await pdf.setFormFieldValue("email", "jane@example.com");
await pdf.saveAs("./filled-form.pdf");
})();
JavaScript
最小限のワークフロー(5ステップ)
IronPDFをインストールする: npm install @ironsoftware/ironpdf
IronPdfGlobalConfig.getConfig().licenseKeyを介してライセンスキーを設定する
既存のPDFをPdfDocument.fromFile(path)でロードする
await pdf.setFormFieldValue(fieldName, value)で各フィールド値を設定する
await pdf.saveAs(outputPath)で結果を保存する
Node.jsでPDFフォームを埋めるにはどのような前提条件が必要ですか?
以下のコード例を実行する前に、三つのことが整っていることを確認してください: サポートされるNode.jsバージョン、IronPDFのライセンスキー、およびIronPdfEngineバイナリ。
Node.jsバージョン :IronPDFはNode.js 18以降が必要です。 現在のLTSリリースは公式 for Node.jsウェブサイト からダウンロードできます。 ライブラリはすべてのPDF操作にNode.js非同期I/Oを使用するため、awaitまたはプロミスチェインが全体の標準パターンです。 パッケージはネイティブESMとasync_hooks機能に依存しているため、Node.jsの古いバージョンはサポートされません。Node.js 18+が必要です。
ライセンスキー :アクティブなIronPDFライセンスキーで完全なAPIを利用できます。 無料トライアルを開始して 開発とテストにキーを取得するか、生産利用のためにライセンスの購入 を行ってください。 展開オプション(環境変数、構成ファイル、シークレットマネージャー)については、ライセンスキーの使用 ガイドを参照してください。
IronPdfEngine : Node.jsパッケージには、IronPdfEngine、実際のPDF操作を処理するクロスプラットフォームのレンダリングエンジンが含まれています。 セットアップとプラットフォーム固有のメモ(Windows、Linux、macOS)がIronPdfEngineの使用 ドキュメントにあります。
Node.jsコードでライセンスキーを設定するにはどうすればいいですか?
アプリケーション起動時にライセンスキーを一度適用し、任意のPdfDocument呼び出しの前に:
const { IronPdfGlobalConfig } = require( "@ironsoftware/ironpdf" );
// Apply once at startup -- before any PdfDocument operations
IronPdfGlobalConfig .getConfig().licenseKey = process.env. IRONPDF_LICENSE_KEY ;
const { IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
// Apply once at startup -- before any PdfDocument operations
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
JavaScript
process.env.IRONPDF_LICENSE_KEYを使用して示されるように、環境変数にキーを保存することで、ソース管理から資格情報を守ります。 開始ガイドの概要 は、異なる展開環境のための追加の初期化パターンをカバーしています。
どのようにIronPDF for Node.jsをインストールしますか?
Node.js用のIronPDFのインストールには1つのnpmコマンドで済みます。 プロジェクトディレクトリで実行してください:
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/install-full.sh
npm install @ironsoftware/ironpdf
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/install-full.sh
npm install @ironsoftware/ironpdf
SHELL
パッケージはTypeScriptの型宣言を同梱しているため、TypeScriptプロジェクトでは@typesパッケージなしでフルインテリセンスサポートを得ることができます。 Windows、Linux、およびmacOS向けのプラットフォーム固有のバイナリは、インストール時に自動的にダウンロードされます。 npmでの@Iron Software/ironpdf パッケージ にはすべての公開済みバージョンとピア依存関係が記載されています。
TypeScriptプロジェクトでは、同梱されている.d.ts宣言により、VS CodeやTypeScript言語サービスをサポートする他のエディターでインテリセンスがすぐに機能します。
既存のモノレポやDockerベースのワークフローにIronPDFを追加する手順についてはNode.js用IronPDFのドキュメント をご覧ください。
プログラムで PDF フォームを埋めるにはどうすればよいですか?
PDFをロードし、そのフォームフィールドに値を書き込むためには、3つの非同期呼び出しが必要です: saveAs()。 以下の例は多くのフィールドからなる申請フォームを記入し、必要に応じてフラット化して、配布後に値が変更されないようにします。
完全なフォーム記入の例はどのように見えますか?
以下の例は、いくつかのフィールドタイプを持つPDFをロードし、それらを記入して結果を保存するものです。 記入ではなくフォームそのものを作成することに焦点を当てた詳細な例をご覧になるにはPDF Formsの例ページ をご覧ください。
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/fill-pdf-form.js
const { PdfDocument , IronPdfGlobalConfig } = require( "@ironsoftware/ironpdf" );
IronPdfGlobalConfig .getConfig().licenseKey = process.env. IRONPDF_LICENSE_KEY ;
async function fillApplicationForm() {
// Load the PDF containing form fields
const pdf = await PdfDocument .fromFile( "./forms/application-form.pdf" );
// Discover available field names before filling
const fieldNames = await pdf.getFormFieldNames();
console.log( "Form fields:" , fieldNames);
// Text fields
await pdf.setFormFieldValue( "firstName" , "Jane" );
await pdf.setFormFieldValue( "lastName" , "Doe" );
await pdf.setFormFieldValue( "email" , "jane.doe@example.com" );
await pdf.setFormFieldValue( "phone" , "+1-555-987-6543" );
// Date field
await pdf.setFormFieldValue( "dateOfBirth" , "03/22/1988" );
// チェックボックス fields -- pass "true" or "false" as strings
await pdf.setFormFieldValue( "agreeToTerms" , "true" );
await pdf.setFormFieldValue( "subscribeNewsletter" , "false" );
// Dropdown / select field
await pdf.setFormFieldValue( "country" , "United States" );
// Multi-line text area
await pdf.setFormFieldValue( "comments" , "Application submitted via automated workflow." );
// Flatten the form to lock values -- prevents further editing
// await pdf.flattenAllFormFields();
await pdf.saveAs( "./output/filled-application.pdf" );
console.log( "Form saved." );
}
fillApplicationForm().catch(console.error);
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/fill-pdf-form.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function fillApplicationForm() {
// Load the PDF containing form fields
const pdf = await PdfDocument.fromFile("./forms/application-form.pdf");
// Discover available field names before filling
const fieldNames = await pdf.getFormFieldNames();
console.log("Form fields:", fieldNames);
// Text fields
await pdf.setFormFieldValue("firstName", "Jane");
await pdf.setFormFieldValue("lastName", "Doe");
await pdf.setFormFieldValue("email", "jane.doe@example.com");
await pdf.setFormFieldValue("phone", "+1-555-987-6543");
// Date field
await pdf.setFormFieldValue("dateOfBirth", "03/22/1988");
// チェックボックス fields -- pass "true" or "false" as strings
await pdf.setFormFieldValue("agreeToTerms", "true");
await pdf.setFormFieldValue("subscribeNewsletter", "false");
// Dropdown / select field
await pdf.setFormFieldValue("country", "United States");
// Multi-line text area
await pdf.setFormFieldValue("comments", "Application submitted via automated workflow.");
// Flatten the form to lock values -- prevents further editing
// await pdf.flattenAllFormFields();
await pdf.saveAs("./output/filled-application.pdf");
console.log("Form saved.");
}
fillApplicationForm().catch(console.error);
JavaScript
getFormFieldNames()を呼び出した後、PDF作成者が使用したフィールド名を教えてくれる返却された配列です。 これは、作成されていないフォームとの統合時にフィールド名のタイプミスを避けるための最速の方法です。
開発中に一度getFormFieldNames()を呼び出して、PDFの中の正確なフィールド名を印刷します。 間違った名前をハードコーディングすることは、setFormFieldValue()後にフィールドが空のまま表示される最も一般的な原因です。
さまざまなフォームフィールドタイプをどのように扱いますか?
IronPDFは標準的なAcroFormフィールドタイプをサポートしています:テキストボックス、チェックボックス、ラジオボタン、ドロップダウン、リストボックス、および署名フィールド。 setFormFieldValue()メソッドは、すべての型の文字列値を受け入れます。チェックボックスおよびラジオフィールドの場合、受け入れる値はPDF内の特定のフィールド定義に依存します。
以下のテーブルは、各フィールドタイプに対する値の形式を示しています:
チェックボックスとラジオボタンはどう機能しますか?
チェックボックスは"false"を受け入れてチェックを外します。 ラジオボタンは選択するオプションのエクスポート値を受け入れます -- エクスポートされた文字列は通常PDFのフィールドプロパティで表示されるもので、表示ラベルとは異なります。
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/field-types.js
const { PdfDocument , IronPdfGlobalConfig } = require( "@ironsoftware/ironpdf" );
IronPdfGlobalConfig .getConfig().licenseKey = process.env. IRONPDF_LICENSE_KEY ;
async function handleFieldTypes() {
const pdf = await PdfDocument .fromFile( "./forms/complex-form.pdf" );
// Radio button -- use the field's export value, not its display label
await pdf.setFormFieldValue( "gender" , "Female" );
// チェックボックス
await pdf.setFormFieldValue( "termsAccepted" , "true" );
// Dropdown
await pdf.setFormFieldValue( "preferredContact" , "Email" );
// Numeric field -- pass the number as a string
await pdf.setFormFieldValue( "invoiceAmount" , "1250.00" );
// Date picker
await pdf.setFormFieldValue( "appointmentDate" , "2024-06-15" );
await pdf.saveAs( "./output/complex-form-filled.pdf" );
}
handleFieldTypes().catch(console.error);
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/field-types.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function handleFieldTypes() {
const pdf = await PdfDocument.fromFile("./forms/complex-form.pdf");
// Radio button -- use the field's export value, not its display label
await pdf.setFormFieldValue("gender", "Female");
// チェックボックス
await pdf.setFormFieldValue("termsAccepted", "true");
// Dropdown
await pdf.setFormFieldValue("preferredContact", "Email");
// Numeric field -- pass the number as a string
await pdf.setFormFieldValue("invoiceAmount", "1250.00");
// Date picker
await pdf.setFormFieldValue("appointmentDate", "2024-06-15");
await pdf.saveAs("./output/complex-form-filled.pdf");
}
handleFieldTypes().catch(console.error);
JavaScript
マルチセレクトリストボックスフィールドは同じパターンに従います。 フィールドが複数の選択を許可する場合は、1つの値ではなく文字列の配列を渡します。 署名フィールドは署名グラフィックを表すbase64エンコードされた画像文字列を受け取ることができます。
getFormFieldNames()を使用してください。
PDFフォームフィールドを記入した後にフラット化するにはどうすればいいですか?
PDFフォームのフラット化は、すべてのフィールド値を静的なページコンテンツに結合し、対話的層を除去します。 結果として生じる文書はもはや編集できず、配布中の誤った変更を防ぎ、すべてのPDFビューアで一貫したレンダリングを保証します。
すべてのフィールド値を設定した後、ドキュメントを保存する前にロードされたドキュメントにflattenAllFormFields()を呼び出します。
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/flatten-form.js
const { PdfDocument , IronPdfGlobalConfig } = require( "@ironsoftware/ironpdf" );
IronPdfGlobalConfig .getConfig().licenseKey = process.env. IRONPDF_LICENSE_KEY ;
async function fillAndFlattenForm() {
const pdf = await PdfDocument .fromFile( "./forms/contract.pdf" );
// Fill the required fields
await pdf.setFormFieldValue( "signerName" , "Jane Doe" );
await pdf.setFormFieldValue( "signatureDate" , "2024-06-15" );
await pdf.setFormFieldValue( "agreementAccepted" , "true" );
// Flatten -- converts interactive fields to static content
await pdf.flattenAllFormFields();
await pdf.saveAs( "./output/contract-signed.pdf" );
console.log( "Contract flattened and saved." );
}
fillAndFlattenForm().catch(console.error);
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/flatten-form.js
const { PdfDocument, IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
async function fillAndFlattenForm() {
const pdf = await PdfDocument.fromFile("./forms/contract.pdf");
// Fill the required fields
await pdf.setFormFieldValue("signerName", "Jane Doe");
await pdf.setFormFieldValue("signatureDate", "2024-06-15");
await pdf.setFormFieldValue("agreementAccepted", "true");
// Flatten -- converts interactive fields to static content
await pdf.flattenAllFormFields();
await pdf.saveAs("./output/contract-signed.pdf");
console.log("Contract flattened and saved.");
}
fillAndFlattenForm().catch(console.error);
JavaScript
フラット化は最終の配布に適しています -- 契約後の署名、発行後の証明書、承認後の請求書など。 最終化前にさらにレビューが必要な文書の場合、flattenAllFormFields()をスキップしてそれなしで保存します。
フラット化は保存済みのコピー上で不可逆です。 文書を再生成する必要がある場合は、オリジナルで未記入のPDFをテンプレートとして保持してください。
PDFフォーム自動化の一般的なユースケースは何ですか?
自動化されたフォーム記入は、大量の文書ワークフローから手動データ入力を取り除きます。 次のシナリオは、開発者がIronPDFを使って実装する最も頻繁なパターンをカバーしています。
申請処理: 応募者のデータをデータベースやREST APIから引き出し、金融サービス、保険、または政府の受付ワークフロー用にPDFフォームに入力します。 記入済みフォームを組み合わせて一つの複数ページの提出パケットを生成するためにPDFのマージ 例を使用します。
請求書と領収書の生成: 請求書テンプレートに商品ラインデータ、顧客詳細、および計算済み総額を入力します。 HTMLヘッダーとフッター 例で示されているテクニックを使用してページヘッダーとフッターを追加します。
証明書および資格の生成: 受取人名、完了日、コースタイトルなどで証明書テンプレートをパーソナライズします。 発行後の改ざんを防ぐためにデジタル署名 例を使用してセキュリティを追加します。 PDF/A標準 は、規制された業界での証明書の長期アーカイブに一般的に必要とされています。
レポート生成: 分析データやアンケート結果でレポートテンプレートを埋めます。 既存のフォームを記入するのではなく、ゼロからPDFレイアウトを構築する必要がある場合、HTMLからPDF のチュートリアルを参照してください。
Node.jsでのPDFフォーム入力の次のステップは何ですか?
このガイドでは、PDFの読み込み、テキストフィールド、チェックボックス、ドロップダウン、ラジオボタンの入力、値をロックするためのフォームのフラット化、完成したドキュメントの保存を示しました。 同じPdfDocumentインスタンスは、ファイルをリロードすることなくさらなる操作をサポートします--デジタル署名を追加したり、出力を圧縮したり、テキストを抽出します。
無料トライアルを開始 してプロジェクトでIronPDFをテストするか、ライセンスオプションを確認 して、導入に適したプランを見つけてください。
次に何ができるのかを見てみましょうか? Node.jsの完全なチュートリアルコレクションはこちらをチェックしてください:Node.jsでHTMLからPDFへ
よくある質問 Node.js 18以上、IronPDFライセンスキー(無料トライアルあり)、およびIronPdfEngineバイナリが必要です。エンジンは@ironsoftware/ironpdfパッケージに同梱され、インストール時に自動的にダウンロードされます。
プロジェクトディレクトリでnpm install @ironsoftware/ironpdfを実行します。このコマンドは、Windows、Linux、macOS用のパッケージおよびプラットフォーム固有のバイナリをインストールします。TypeScript型宣言も含まれています。
PDFをPdfDocument.fromFile()で読み込んだ後、await pdf.getFormFieldNames()を呼び出してください。このメソッドは、ドキュメント内のすべてのフィールド名の文字列を配列として返します。PDFのフィールド名は大文字と小文字が区別されるため、返された文字列を正確に使用してください。
チェックボックスはチェックを入れる場合に"true"という文字列を受け入れ、チェックを外す場合に"false"を受け入れます。ラジオボタンは対象のオプションのエクスポート値を文字列として受け入れます。getFormFieldNames()を使用し、PDFフィールドプロパティを確認して、正しいエクスポート値を見つけてください。
すべてのフィールド値を設定した後、saveAs()を実行する前にawait pdf.flattenAllFormFields()を呼び出してください。フラット化は、フィールド値を静的なページコンテンツに結合し、対話型フォームレイヤーを削除します。この操作は保存されたファイルに対して不可逆です。
はい。@ironsoftware/ironpdfパッケージにはTypeScript宣言(.d.tsファイル)が含まれているので、別途型パッケージをインストールしなくても、VS Codeや他のエディターで完全な型チェックとIntelliSenseを利用できます。
IronPDF can automate form filling by integrating with databases or APIs to populate PDFs with user data in workflows such as application processing, invoice generation, and certificate issuance.
Storing the IronPDF license key in an environment variable helps to keep your credentials secure and out of source control, thus enhancing application security.
Yes, IronPDF can handle multi-line text fields by passing the desired text string to the `setFormFieldValue()` method. This is useful for extensive input like comments or descriptions.
If form fields appear empty after using IronPDF, ensure the field names match exactly. Field names are case-sensitive, so use `pdf.getFormFieldNames()` to list and verify the actual field names.
テクニカルライター
Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。
...
詳しく読む