Jak Wypełnić Pola Formularza PDF w Node.js
Programowe wypełnianie formularzy PDF w Node.js pozwala zautomatyzować przepływy dokumentów: od uzupełniania formularzy aplikacyjnych danymi z bazy, po generowanie spersonalizowanych certyfikatów na dużą skalę. IronPDF dla Node.js zapewnia prosty API do ładowania istniejących PDFów, zapisywania wartości w polach formularzy oraz zapisywania ukończonych dokumentów bez opuszczania środowiska JavaScript.
Ten przewodnik obejmuje pełny przepływ pracy: instalację pakietu, zastosowanie klucza licencyjnego, wypełnianie pól tekstowych, pól wyboru, rozwijanych list i przycisków radiowych, spłaszczanie pól formularzy, aby zablokować wartości, i zapisywanie wyniku. Wszystkie przykłady kodu wykorzystują await oraz pakiet @ironsoftware/ironpdf.
Szybki start: Wypełnianie formularza PDF w Node.js
Zainstaluj pakiet, a następnie załaduj i wypełnij formularz w kilku liniach:
//: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.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");
})();//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/quickstart.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");
})();Minimalny proces (5 kroków)
1. Zainstaluj IronPDF: `npm install @ironsoftware/ironpdf` 2. Ustaw swój klucz licencyjny za pomocą `IronPdfGlobalConfig.getConfig().licenseKey` 3. Załaduj istniejący plik PDF za pomocą `PdfDocument.fromFile(path)` 4. Ustaw wartość każdego pola za pomocą `await pdf.setFormFieldValue(fieldName, value)` 5. Zapisz wynik za pomocą `await pdf.saveAs(outputPath)`Jakie są Wymagania do Wypełniania Formularzy PDF w Node.js?
Przed uruchomieniem poniższych przykładów kodu upewnij się, że masz trzy rzeczy: obsługiwana wersja Node.js, klucz licencyjny IronPDF oraz plik binarny IronPdfEngine.
Wersja Node.js: IronPDF wymaga Node.js 18 lub nowszej. Pobierz aktualne wydanie LTS z oficjalnej strony internetowej Node.js. Biblioteka wykorzystuje asynchroniczne operacje wejścia/wyjścia Node.js do wszystkich operacji na plikach PDF, więc await lub łańcuchowanie obietnic (Promise chaining) jest standardowym wzorcem w całym kodzie. Starsze wersje Node.js nie są obsługiwane, ponieważ pakiet opiera się na natywnych funkcjach ESM i async_hooks, które wymagają Node.js 18+.
Klucz licencyjny: Aktywny klucz licencyjny IronPDF odblokowuje pełny API. Rozpocznij bezpłatny okres próbny, aby uzyskać klucz na potrzeby rozwoju i testowania, lub kup licencję do użytku produkcyjnego. Dla opcji wdrożeniowych (zmienne środowiskowe, pliki konfiguracyjne, menedżery tajemnic) zobacz Korzystanie z Kluczy Licencyjnych.
IronPdfEngine: Pakiet Node.js zawiera IronPdfEngine, wieloplatformowy silnik renderujący, który obsługuje rzeczywistą manipulację plikami PDF. Ustawienia i uwagi specyficzne dla platformy (Windows, Linux, macOS) znajdują się w dokumentacji Użyj IronPdfEngine.
Jak Ustawić Klucz Licencyjny w Kodzie Node.js?
Zastosuj klucz licencyjny jednokrotnie podczas uruchamiania aplikacji, przed jakimikolwiek wywołaniami PdfDocument:
//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/license-setup.js
const { IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
// Apply once at startup -- before any PdfDocument operations
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;//:path=/static-assets/pdf/content-code-examples/nodejs/how-to/nodejs-fill-pdf-form/license-setup.js
const { IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");
// Apply once at startup -- before any PdfDocument operations
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;Przechowywanie klucza w zmiennej środowiskowej (jak pokazano powyżej w przypadku process.env.IRONPDF_LICENSE_KEY) pozwala na wyłączenie danych uwierzytelniających z kontroli wersji. Przegląd rozpoczęcia pracy obejmuje dodatkowe wzorce inicjalizacji dla różnych środowisk wdrożeniowych.
Jak zainstalować IronPDF for Node.js?
Instalacja IronPDF dla Node.js wymaga pojedynczej komendy npm. Uruchom ją w katalogu swojego projektu:
//: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/ironpdfPakiet zawiera deklaracje typów TypeScript, dzięki czemu projekty TypeScript otrzymują pełną obsługę IntelliSense bez konieczności stosowania oddzielnego pakietu @types. Pliki binarne specyficzne dla platformy dla Windows, Linux i macOS są pobierane automatycznie podczas instalacji. Pakiet @Iron Software/ironpdf na npm listuje wszystkie opublikowane wersje i zależności koleżeńskie.
.d.ts oznaczają, że IntelliSense działa od razu w VS Code i innych edytorach obsługujących usługi językowe TypeScript.Dla instrukcji jak dodać IronPDF do istniejącego monorepo lub workflowu opartego na Dockerze, zobacz dokumentację IronPDF dla Node.js.
Jak wypełnić formularze PDF programowo?
Wczytanie pliku PDF i wpisanie wartości w jego pola formularza wymaga trzech wywołań asynchronicznych: PdfDocument.fromFile(), setFormFieldValue() oraz saveAs(). Poniższy przykład wypełnia formularz aplikacji wielopolowej i opcjonalnie go spłaszcza, aby wartości nie mogły zostać zmienione po dostarczeniu.
Jak Wygląda Kompletny Przykład Wypełniania Formularzy?
Poniższy przykład ładuje PDF z kilkoma typami pól, wypełnia je i zapisuje wynik. Dla skupionego spojrzenia na tworzenie formularzy zamiast ich wypełniania, zobacz stronę przykładów 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");
// Pole wyboru 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");
// Pole wyboru 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);Po wywołaniu getFormFieldNames() zwrócona tablica informuje, jakich nazw pól użył autor pliku PDF. Jest to najszybszy sposób, aby uniknąć literówek w nazwach pól podczas integracji z formularzami, które nie stworzyłeś.
getFormFieldNames() raz podczas tworzenia, aby wydrukować dokładne nazwy pól w pliku PDF. Wpisanie niewłaściwej nazwy jest najczęstszą przyczyną pojawiania się pustych pól po setFormFieldValue().Jak Obsługiwać Różne Typy Pól Formularza?
IronPDF obsługuje standardowe typy pól AcroForm: pola tekstowe, przyciski wyboru, rozwijane listy, listy i pola do podpisu. Metoda setFormFieldValue() akceptuje wartości typu string dla wszystkich typów; w przypadku pól wyboru i pól opcji akceptowane wartości zależą od konkretnej definicji pola w pliku PDF.
Poniższa tabela pokazuje format wartości dla każdego typu pola:
| Typ pola | Format wartości | Przykład |
|---|---|---|
| Tekst / Wieloliniowy | Dowolny ciąg | "Jane Doe" |
| Pole wyboru | "true" lub "false" | "true" |
| Przycisk radiowy | Wartość eksportowa opcji | "Kobieta" |
| Rozwijana lista (Combo) | Tekst wyświetlany opcji | "Stany Zjednoczone" |
| Pole wyboru (wielokrotny wybór) | Tablica ciągów | ["Opcja1", "Opcja2"] |
| Data / numeryczne | Reprezentacja tekstowa | "15.06.2024" |
Jak działają pola wyboru i przyciski radiowe?
Pola wyboru akceptują "true" do zaznaczenia i "false" do odznaczenia. Przyciski radiowe akceptują wartość eksportową opcji do zaznaczenia -- eksportowany ciąg jest zazwyczaj widoczny w właściwościach pola PDF i różni się od etykiety wyświetlania.
//: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");
// Pole wyboru
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");
// Pole wyboru
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);Pola listy wielokrotnego wyboru podążają za tym samym wzorcem. Gdy pole pozwala na wiele wyborów, przekaż tablicę ciągów zamiast pojedynczej wartości. Pola podpisu mogą przyjmować ciąg obrazu kodowanego w base64, reprezentujący grafikę podpisu.
setFormFieldValue() nie zmienia wartości pola, sprawdź, czy nazwa pola jest dokładnie zgodna — w nazwach pól PDF rozróżniana jest wielkość liter. Użyj getFormFieldNames(), aby wymienić rzeczywiste nazwy w dokumencie.Jak zlikwidować pola formularza PDF po ich wypełnieniu?
Likwidacja formularza PDF łączy wszystkie wartości pól z treścią statyczną strony, usuwając warstwę interaktywną. Wynikowy dokument nie może być dalej edytowany, co zapobiega przypadkowym zmianom podczas dystrybucji i zapewnia spójne renderowanie we wszystkich przeglądarkach PDF.
Wywołaj flattenAllFormFields() w załadowanym dokumencie po ustawieniu wszystkich wartości pól i przed zapisaniem:
//: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);Likwidacja jest odpowiednia dla ostatecznych dostaw -- umów po podpisaniu, certyfikatów po wydaniu lub faktur po zatwierdzeniu. W przypadku dokumentów, które wymagają dalszej weryfikacji przed sfinalizowaniem, należy pominąć flattenAllFormFields() i zapisać plik bez tego fragmentu.
Jakie są powszechne przypadki użycia automatyzacji formularzy PDF?
Automatyczne wypełnianie formularzy usuwa ręczne wprowadzanie danych z wysokowydajnych przepływów dokumentów. W poniższych scenariuszach omówiono najczęstsze wzorce wdrażane przez programistów z IronPDF.
Przetwarzanie aplikacji: Pobierz dane wnioskodawcy z bazy danych lub API REST i wypełnij formularze PDF dla usług finansowych, ubezpieczeniowych lub procesów przyjmowania w instytucjach rządowych. Połącz wypełnione formularze za pomocą przykładu Łączenie PDF, aby stworzyć jeden wielostronicowy pakiet zgłoszeniowy.
Generowanie faktur i paragonów: Wypełnij szablony faktur danymi z pozycji, danymi klienta i obliczonymi sumami. Dodaj nagłówki i stopki stron za pomocą technik pokazanych w przykładzie HTML Nagłówki i Stopki.
Generowanie certyfikatów i poświadczeń: Personalizuj szablony certyfikatów z nazwiskami odbiorców, datami ukończenia i tytułami kursów. Dodaj zabezpieczenie za pomocą przykładu Podpisy Cyfrowe, aby zapobiec manipulacji po wydaniu. Standard PDF/A jest często wymagany do długoterminowej archiwizacji certyfikatów w przemysłach regulowanych.
Generowanie raportów: Wypełniaj szablony raportów danymi analitycznymi lub wynikami ankiet. W przypadkach, gdy potrzebujesz zbudować układ PDF od podstaw, zamiast wypełniać istniejący formularz, zobacz samouczek HTML do PDF.
Jakie są kolejne kroki w wypełnianiu formularzy PDF w Node.js?
Ten przewodnik pokazał ładowanie PDF, wypełnianie pól tekstowych, pól wyboru, list rozwijanych i przycisków radiowych, likwidację formularza w celu zablokowania wartości i zapisanie ukończonego dokumentu. Ta sama instancja PdfDocument obsługuje dalsze operacje — dodawanie podpisów cyfrowych, kompresję wyników lub wyodrębnianie tekstu — bez konieczności ponownego ładowania pliku.
Rozpocznij bezpłatny okres próbny, aby przetestować IronPDF w swoim projekcie lub zobacz opcje licencjonowania, aby znaleźć plan, który pasuje do Twojego wdrożenia.
Gotowy, aby sprawdzić, co jeszcze możesz zrobić? Sprawdź pełną kolekcję samouczków Node.js tutaj: HTML to PDF in Node.js
Często Zadawane Pytania
Jakie warunki muszę spełnić, aby wypełniać formularze PDF w Node.js?
Potrzebujesz Node.js 18 lub wyżej, klucza licencyjnego IronPDF (dostępna jest bezpłatna wersja próbna) oraz pliku binarnego IronPdfEngine. Silnik jest dołączony do pakietu @ironsoftware/ironpdf i pobierany automatycznie podczas instalacji.
Jak zainstalować IronPDF for Node.js?
Uruchom npm install @ironsoftware/ironpdf w katalogu projektu. Komenda instaluje pakiet i jego specyficzne platformowe pliki binarne dla Windows, Linux i macOS. Deklaracje typów TypeScript są dołączone.
Jak odkryć nazwy pól w formularzu PDF?
Wywołaj await pdf.getFormFieldNames() po załadowaniu PDF za pomocą PdfDocument.fromFile(). Metoda zwraca tablicę wszystkich nazw pól w dokumencie. Nazwy pól PDF są rozróżniane wielkością liter, więc używaj dokładnie tych ciągów, które są zwracane.
Jaki format wartości akceptują pola wyboru i przyciski radiowe?
Pola wyboru akceptują ciąg znaków "true", aby zaznaczyć, i "false", aby odznaczyć. Przyciski radiowe akceptują wartość eksportową docelowej opcji jako ciąg tekstowy. Użyj getFormFieldNames() i sprawdź właściwości pól PDF, aby znaleźć poprawną wartość eksportową.
Jak zapobiec edytowaniu wypełnionego formularza PDF?
Wywołaj await pdf.flattenAllFormFields() po ustawieniu wszystkich wartości pól, a przed saveAs(). Spłaszczanie łączy wartości pól w treści statycznej strony usuwając interaktywną warstwę formularza. Operacja jest nieodwracalna w zapisanym pliku.
Czy mogę używać IronPDF dla Node.js razem z TypeScript?
Tak. Pakiet @ironsoftware/ironpdf zawiera deklaracje TypeScript (.d.ts pliki), dzięki czemu uzyskasz pełne sprawdzanie typów i IntelliSense w VS Code oraz innych edytorach, bez potrzeby instalowania oddzielnego pakietu typów.





