Node.jsでPDFフォームフィールドを埋める方法
Node.jsでのPDFフォームをプログラム的に埋めることにより、ドキュメントワークフローを自動化できます:データベースレコードで申請書を埋めるから、大量の個人化された証明書を生成するまで。 IronPDF for Node.js はJavaScript環境を離れることなく、既存のPDFをロードし、フォームフィールドに値を書き込み、完成した文書を保存するための簡単なAPIを提供します。
このガイドは、パッケージのインストール、ライセンスキーの適用、テキストフィールド、チェックボックス、ドロップダウン、ラジオボタンの記入、値をロックするためのフォームフィールドのフラット化、出力の保存という完全なワークフローをカバーします。 すべてのコード例は、@ironsoftware/ironpdfパッケージを使用しています。
クイックスタート: Node.jsで PDF フォームに入力する
パッケージをインストールし、以下の数行でフォームをロードして埋めます:
//: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:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/quickstart.jsconst { 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");
})();
最小限のワークフロー(5ステップ)
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)`で結果を保存する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呼び出しの前に:
:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/license-setup.jsconst { 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を使用して示されるように、環境変数にキーを保存することで、ソース管理から資格情報を守ります。 開始ガイドの概要は、異なる展開環境のための追加の初期化パターンをカバーしています。
どのように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パッケージは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);getFormFieldNames()を呼び出した後、PDF作成者が使用したフィールド名を教えてくれる返却された配列です。 これは、作成されていないフォームとの統合時にフィールド名のタイプミスを避けるための最速の方法です。
開発中に一度getFormFieldNames()を呼び出して、PDFの中の正確なフィールド名を印刷します。 間違った名前をハードコーディングすることは、setFormFieldValue()後にフィールドが空のまま表示される最も一般的な原因です。
さまざまなフォームフィールドタイプをどのように扱いますか?
IronPDFは標準的なAcroFormフィールドタイプをサポートしています:テキストボックス、チェックボックス、ラジオボタン、ドロップダウン、リストボックス、および署名フィールド。 setFormFieldValue()メソッドは、すべての型の文字列値を受け入れます。チェックボックスおよびラジオフィールドの場合、受け入れる値はPDF内の特定のフィールド定義に依存します。
以下のテーブルは、各フィールドタイプに対する値の形式を示しています:
| フィールドタイプ | 値の形式 | 翻訳例 |
|---|---|---|
| テキスト / 複数行 | 任意の文字列 | "Jane Doe" |
| チェックボックス | "true" または "false" | "true" |
| ラジオボタン | オプションのエクスポート値 | "女性" |
| ドロップダウン(コンボ) | オプションの表示テキスト | "アメリカ合衆国" |
| リストボックス(マルチセレクト) | 文字列の配列 | ["Option1", "Option2"] |
| 日付 / 数値 | 文字列表現 | "2024-06-15" |
チェックボックスとラジオボタンはどう機能しますか?
チェックボックスは"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);マルチセレクトリストボックスフィールドは同じパターンに従います。 フィールドが複数の選択を許可する場合は、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);フラット化は最終の配布に適しています -- 契約後の署名、発行後の証明書、承認後の請求書など。 最終化前にさらにレビューが必要な文書の場合、flattenAllFormFields()をスキップしてそれなしで保存します。
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でPDFフォームに入力するには、どのような前提条件が必要ですか?
Node.js 18以上、IronPDFライセンスキー(無料トライアルあり)、およびIronPdfEngineバイナリが必要です。エンジンは@ironsoftware/ironpdfパッケージに同梱され、インストール時に自動的にダウンロードされます。
IronPDF for Node.jsのインストール方法は?
プロジェクトディレクトリでnpm install @ironsoftware/ironpdfを実行します。このコマンドは、Windows、Linux、macOS用のパッケージおよびプラットフォーム固有のバイナリをインストールします。TypeScript型宣言も含まれています。
PDFフォームのフィールド名を見つける方法は?
PDFをPdfDocument.fromFile()で読み込んだ後、await pdf.getFormFieldNames()を呼び出してください。このメソッドは、ドキュメント内のすべてのフィールド名の文字列を配列として返します。PDFのフィールド名は大文字と小文字が区別されるため、返された文字列を正確に使用してください。
チェックボックスとラジオボタンはどのような値の形式を受け入れますか?
チェックボックスはチェックを入れる場合に"true"という文字列を受け入れ、チェックを外す場合に"false"を受け入れます。ラジオボタンは対象のオプションのエクスポート値を文字列として受け入れます。getFormFieldNames()を使用し、PDFフィールドプロパティを確認して、正しいエクスポート値を見つけてください。
入力済みPDFフォームが編集されるのを防ぐ方法はありますか?
すべてのフィールド値を設定した後、saveAs()を実行する前にawait pdf.flattenAllFormFields()を呼び出してください。フラット化は、フィールド値を静的なページコンテンツに結合し、対話型フォームレイヤーを削除します。この操作は保存されたファイルに対して不可逆です。
IronPDF for Node.jsはTypeScriptと一緒に使用できますか?
はい。@ironsoftware/ironpdfパッケージにはTypeScript宣言(.d.tsファイル)が含まれているので、別途型パッケージをインストールしなくても、VS Codeや他のエディターで完全な型チェックとIntelliSenseを利用できます。





