Node.js'de PDF Form Alanları Nasıl Doldurulur
Node.js'de PDF formlarını programlı olarak doldurmak, belge iş akışlarını otomatize etmenizi sağlar: veritabanı kayıtlarıyla başvuru formlarını doldurmaktan kişisel sertifikalar üretmeye kadar. IronPDF for Node.js, mevcut PDF'leri yüklemek, form alanlarına değerler yazmak ve tamamlanmış belgeleri JavaScript ortamınızı terk etmeden kaydetmek için basit bir API sağlar.
Bu kılavuz, paketi yükleme, lisans anahtarı uygulama, metin alanlarını, onay kutularını, açılır listeleri ve radyo düğmelerini doldurma, form alanlarını düzleştirip değerleri kilitleme ve çıktıyı kaydetme gibi tam iş akışını kapsar. Tüm kod örneklerinde await ve @ironsoftware/ironpdf paketi kullanılmaktadır.
Node.js'de PDF Formu Hızlı Başlangıç:
Paketi yükleyin, ardından birkaç satırda bir form yükleyin ve doldurun:
//: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");
})();Asgari İş Akışı (5 adım)
1. IronPDF'yi yükleyin: `npm install @ironsoftware/ironpdf` 2. Lisans anahtarınızı `IronPdfGlobalConfig.getConfig().licenseKey` aracılığıyla ayarlayın 3. Mevcut PDF'yi `PdfDocument.fromFile(path)` ile yükleyin 4. Her alan değerini `await pdf.setFormFieldValue(fieldName, value)` ile ayarlayın 5. Sonucu `await pdf.saveAs(outputPath)` ile kaydedinNode.js'de PDF Formlarını Doldurmak İçin Hangi Ön Koşullara İhtiyacım Var?
Aşağıdaki kod örneklerini çalıştırmadan önce, üç şeyin hazır olduğundan emin olun: desteklenen bir Node.js sürümü, bir IronPDF lisans anahtarı ve IronPdfEngine ikili dosyası.
Node.js sürümü: IronPDF, Node.js 18 veya daha yüksek bir sürüm gerektirir. resmi Node.js web sitesinden mevcut LTS sürümünü indirin. Kütüphane, tüm PDF işlemleri için Node.js asenkron I/O kullanır, bu nedenle await veya Promise zincirleme, genel olarak standart kalıptır. Node.js'in eski sürümleri desteklenmemektedir, çünkü paket, Node.js 18+ gerektiren yerel ESM ve async_hooks özelliklerine bağlıdır.
Lisans anahtarı: Aktif bir IronPDF lisans anahtarı, tam API'yi kullanıma açar. Ücretsiz denemenizi başlatın ve geliştirme ve test için bir anahtar alın ya da üretim kullanımı için bir lisans satın alın. Dağıtım seçenekleri (ortam değişkenleri, yapılandırma dosyaları, gizli yöneticiler) için bkz. Lisans Anahtarlarını Kullanma kılavuzu.
IronPdfEngine: Node.js paketi, gerçek PDF işlemeyi gerçekleştiren çapraz platform bir görüntüleme motoru olan IronPdfEngine'yi içerir. Kurulum ve platforma özel notlar (Windows, Linux, macOS) IronPdfEngine Kullanımı belgelerinde yer alır.
Node.js Kodunda Lisans Anahtarını Nasıl Ayarlayabilirim?
Lisans anahtarını, uygulama başlatıldığında, herhangi bir PdfDocument çağrısından önce bir kez uygulayın:
//: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;Anahtarı bir ortam değişkeninde saklamak (yukarıda process.env.IRONPDF_LICENSE_KEY ile gösterildiği gibi), kimlik bilgilerinin kaynak kontrolünün dışında kalmasını sağlar. Hızlı Başlangıç Özeti, farklı dağıtım ortamları için ek başlatma desenlerini kapsar.
Node.js için IronPDF'yi Nasıl Yüklerim?
IronPDF for Node.js'i kurmak için tek bir npm komutu yeterlidir. Proje dizininde çalıştırın:
//: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/ironpdfPaket, TypeScript tür bildirimleriyle birlikte gelir, böylece TypeScript projeleri ayrı bir @types paketi olmadan tam IntelliSense desteği alır. Windows, Linux ve macOS için platforma özel ikili dosyalar, kurulum sırasında otomatik olarak indirilir. npm üzerinde @Iron Software/ironpdf paketi, yayınlanan tüm sürümleri ve eş bağımlılıkları listeler.
.d.ts bildirimleri, IntelliSense'in VS Code ve TypeScript dil hizmetlerini destekleyen diğer editörlerde kullanıma hazır olarak çalıştığı anlamına gelir.Mevcut bir monorepo veya Docker tabanlı iş akışına IronPDF eklemek için talimatlar, IronPDF for Node.js dokümantasyonu'nda bulunabilir.
PDF Formlarını Programlı Olarak Nasıl Doldururum?
Bir PDF'yi yüklemek ve form alanlarına değerler yazmak için üç asenkron çağrı gerekir: PdfDocument.fromFile(), setFormFieldValue() ve saveAs(). Aşağıdaki örnek, çok alanlı bir başvuru formunu doldurur ve isteğe bağlı olarak düzleştirerek teslimattan sonra değerlerin değiştirilememesini sağlar.
Tam Form Doldurma Örneği Nasıl Görünür?
Aşağıdaki örnek, çeşitli alan türlerine sahip bir PDF'yi yükler, doldurur ve sonucu kaydeder. Formlar oluşturmaya odaklanmak için PDF Formları örnek sayfasını inceleyin.
//: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");
// Onay Kutusu 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");
// Onay Kutusu 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() çağrıldıktan sonra, döndürülen dizi PDF yazarının hangi alan adlarını kullandığını gösterir. Formları kendiniz oluşturmadığınız zaman, alan adlarında yazım hatalarından kaçınmanın en hızlı yolu budur.
getFormFieldNames() komutunu bir kez çağırarak PDF'nize tam alan adlarını PRINT edin. Yanlış adı sabit kodlamak, setFormFieldValue().Farklı Form Alanı Türlerini Nasıl Ele Alırım?
IronPDF, standart AcroForm alan türlerini destekler: metin kutuları, onay kutuları, radyo düğmeleri, açılır listeler, liste kutuları ve imza alanları. setFormFieldValue() yöntemi tüm türler için dize değerlerini kabul eder; onay kutusu ve radyo düğmesi alanları için kabul edilen değerler, PDF'deki belirli alan tanımına bağlıdır.
Aşağıdaki tablo, her alan türü için değer formatını gösterir:
| Alan Türü | Değer Formatı | Örnek |
|---|---|---|
| Metin / Çok Satırlı | Herhangi bir dize | "Jane Doe" |
| Onay Kutusu | "true" veya "false" | "true" |
| Radyo Düğmesi | Seçeneğin dışa aktarma değeri | "Bayan" |
| Açılır Liste (Kombinasyon) | Seçeneğin görünür metni | "Amerika Birleşik Devletleri" |
| Liste Kutusu (çoklu seçim) | Dizi dizileri | ["Seçenek1", "Seçenek2"] |
| Tarih / Sayısal | Dize temsili | "2024-06-15" |
Onay Kutuları ve Radyo Düğmeleri Nasıl Çalışır?
Onay kutuları, işaretlemek için "true" ve işaretini kaldırmak için "false" değerlerini kabul eder. Radyo düğmeleri, seçecek seçeneğin dışa aktarma değerini kabul eder - dışa aktarılan dize genellikle PDF'nin alan özelliklerinde görünür ve görüntü etiketiyle ayrıktır.
//: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");
// Onay Kutusu
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");
// Onay Kutusu
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);Çoklu seçimli liste kutusu alanları aynı deseni takip eder. Bir alan birden fazla seçime izin veriyorsa, tek bir değer yerine bir dizi dizesi geçirin. İmza alanları, imza grafiğini temsil eden base64 ile kodlanmış bir resim dizesi alabilir.
setFormFieldValue() bir alanın değerini değiştirmiyorsa, alan adının tam olarak eşleşip eşleşmediğini kontrol edin -- PDF alan adlarında büyük/küçük harf duyarlılığı vardır. Belgedeki gerçek adları listelemek için getFormFieldNames() kullanın.PDF Form Alanlarını Doldurduktan Sonra Nasıl Düzleştiririm?
PDF formunun düzleştirilmesi, tüm alan değerlerini statik sayfa içeriğine birleştirir ve etkileşimli katmanı kaldırır. Ortaya çıkan belge daha fazla düzenlenemez, bu da dağıtım sırasında kazara değişiklikleri önler ve tüm PDF görüntüleyiciler arasında tutarlı bir render sağlar.
Tüm alan değerlerini ayarladıktan sonra ve kaydetmeden önce yüklenen belgede flattenAllFormFields() çağrısını yapın:
//: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);Düzleştirme, son teslimatlar için uygundur -- imzadan sonra sözleşmeler, düzenlemeden sonra faturalar veya sertifikalar. Son halini almadan önce daha fazla inceleme gerektiren belgeler için, flattenAllFormFields() kısmını atlayın ve bu kısım olmadan kaydedin.
PDF Form Otomasyonu İçin Yaygın Kullanım Durumları Nelerdir?
Otomatik form doldurma, yüksek hacimli belge iş akışlarından manuel veri girişi işlemini ortadan kaldırır. Aşağıdaki senaryolar, geliştiricilerin IronPDF ile en sık uyguladıkları desenleri kapsamaktadır.
Uygulama işleme: Başvuru sahibinin verilerini bir veritabanından veya REST API'den çekip finansal hizmetler, sigorta veya hükümet kabul iş akışları için PDF formlarını doldurun. Tek bir çok sayfalı gönderim paketi oluşturmak için doldurulmuş formları PDF'leri Birleştirme örneği ile birleştirin.
Fatura ve makbuz oluşturma: Fatura şablonlarını kalem verileri, müşteri detayları ve hesaplanmış toplamlar ile doldurun. Sayfa üstbilgilerini ve altbilgilerini HTML Üstbilgileri ve Altbilgileri örneğinde gösterilen teknikleri kullanarak ekleyin.
Sertifika ve kimlik belgesi üretimi: Sertifika şablonlarını alıcı isimleri, tamamlama tarihleri ve kurs başlıkları ile kişiselleştirin. Yayımlandıktan sonra sahtecilikleri önlemek için Dijital İmzalar örneğini kullanarak güvenlik ekleyin. PDF/A standardı, düzenlenen endüstrilerde sertifikaların uzun süreli arşivlenmesi için genellikle gereklidir.
Rapor oluşturma: Rapor şablonlarını analitik veriler veya anket sonuçları ile doldurun. Mevcut bir formu doldurmak yerine PDF düzenini sıfırdan oluşturmanız gereken durumlarda, HTML'den PDF'ye dersine bakın.
Node.js'de PDF Form Doldurmanın Bir Sonraki Adımları Nelerdir?
Bu kılavuz, bir PDF'nin yüklenmesini, metin alanlarını, onay kutularını, açılır menüleri ve radyo düğmelerini doldurmayı, değerleri kilitlemek için formu düzleştirmeyi ve tamamlanmış belgeyi kaydetmeyi gösterdi. Aynı PdfDocument örneği, dosyayı yeniden yüklemeden dijital imzalar ekleme, çıktıyı sıkıştırma veya metin çıkarma gibi diğer işlemleri de destekler.
Ücretsiz bir deneme başlatın ve projenizde IronPDF'yi test edin veya lisans seçeneklerini görüntüleyin ve dağıtımınıza uygun planı bulun.
Başka neler yapabileceğinizi görmek için hazır mısınız? Buradan tam Node.js ders koleksiyonuna göz atın: Node.js'de HTML'den PDF'ye
Sıkça Sorulan Sorular
Node.js'te PDF formlarını doldurmak için hangi ön koşullara ihtiyacım var?
Node.js 18 veya daha yüksek bir sürüme, bir IronPDF lisans anahtarına (ücretsiz bir deneme mevcuttur) ve IronPdfEngine binary dosyasına ihtiyacınız var. Motor, @ironsoftware/ironpdf paketi ile birlikte sağlanır ve kurulum sırasında otomatik olarak indirilir.
Node.js için IronPDF nasıl yüklenir?
Proje dizininizde npm install @ironsoftware/ironpdf komutunu çalıştırın. Bu komut, paketi ve Windows, Linux ve macOS için platforma özgü ikili dosyalarını kurar. TypeScript tür bildirimleri dahildir.
Bir PDF formundaki alan adlarını nasıl keşfederim?
PDF'yi PdfDocument.fromFile() ile yükledikten sonra await pdf.getFormFieldNames() çağrısını yapın. Bu yöntem, belgede yer alan tüm alan adlarının bir dizi şeklinde döner. PDF alan adları büyük/küçük harf duyarlıdır, bu yüzden dönen tam dizeyi kullanın.
Onay kutuları ve radyo düğmeleri hangi değer formatını kabul eder?
Onay kutuları, işaretlemek için "true" ve işareti kaldırmak için "false" stringini kabul eder. Radyo düğmeleri, hedef seçeneğin dışa aktarma değerini bir string olarak kabul eder. Doğru dışa aktarma değerini bulmak için getFormFieldNames() kullanın ve PDF alan özelliklerini inceleyin.
Doldurulmuş bir PDF formunun düzenlenmesini nasıl önlerim?
Tüm alan değerlerini ayarladıktan sonra ve saveAs() öncesinde await pdf.flattenAllFormFields() çağrısını yapın. Düzleştirme, alan değerlerini statik sayfa içeriği ile birleştirir ve etkileşimli form katmanını kaldırır. Bu işlem, kaydedilen dosya üzerinde geri döndürülemez.
IronPDF for Node.js'i TypeScript ile kullanabilir miyim?
Evet. @ironsoftware/ironpdf paketi, TypeScript deklarasyonları (.d.ts dosyaları) ile birlikte gelir, böylece ayrı bir types paketi yüklemeden VS Code ve diğer editörlerde tam tip kontrolü ve IntelliSense elde edersiniz.





