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 örnekleri await ve @ironsoftware/ironpdf paketini kullanı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.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");
})();
Asgari İş Akışı (5 adım)
1. IronPDF'ü kurun: `npm install @ironsoftware/ironpdf` 2. Lisans anahtarınızı `IronPdfGlobalConfig.getConfig().licenseKey` ile ayarlayın 3. Mevcut PDF'i `PdfDocument.fromFile(path)` ile yükleyin 4. Her bir 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 yerinde 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, tüm kodda standart desendir. Paket, Node.js 18+'ı gerektiren native ESM ve async_hooks özelliklerine bağlı olduğundan, eski Node.js sürümleri desteklenmez.
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 manipülasyonunu yöneten çapraz platform bir düzenleme motoru olan IronPdfEngine 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?
Herhangi bir PdfDocument çağrısından önce uygulama başlatılırken lisans anahtarını bir kez uygulayın:
: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;
Anahtarı bir ortam değişkenine depolamak (yukarıdaki gibi process.env.IRONPDF_LICENSE_KEY ile gösterildiği gibi) kimlik bilgilerini kaynak kontrolünden uzak tutar. 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 deklarasyonları ile birlikte gelir, bu yüzden TypeScript projeleri ayrı bir @types paketine ihtiyaç duymadan 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 deklarasyonları, VS Code ve TypeScript dil hizmetlerini destekleyen diğer editörlerde kutudan çıktığı gibi IntelliSense'in çalışacağı 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 yüklemek ve form alanlarına değerler yazmak üç asenkron çağrı gerektirir: 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ısından sonra, döndürülen dizi size PDF yazarının kullandığı alan adlarını söyler. Formları kendiniz oluşturmadığınız zaman, alan adlarında yazım hatalarından kaçınmanın en hızlı yolu budur.
getFormFieldNames() geliştirirken PDF'inizdeki tam alan adlarını yazdırmak için bir kez çağırın. Yanlış adı sabitlemek, setFormFieldValue() sonrasında alanların boş görünmesinin en yaygın nedenidir.IronSuite, operasyonlarımızda kritik bir rol oynar. Bunlar, iş süreçlerinde verimliliği artıran, kat planları oluşturmak ve envanter yönetimini geliştirmek gibi araçlardır.
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 string değerler kabul eder; onay kutuları ve radyo 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 | "doğru" veya "false" | "doğru" |
| 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ı "true" kontrol edilecek ve "false" kontrol edilecek şekilde 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(), alan adının tam olarak eşleştiğinden emin olun -- PDF alan adları büyük küçük harfe duyarlıdı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 ve kaydetmeden önce yüklenen belgede flattenAllFormFields() çağırı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. Nihai hale getirilmeden önce ek incelemeye ihtiyaç duyan belgeler için flattenAllFormFields() atlayın ve onsuz 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 ilave işlemleri destekler -- dijital imzalar ekleyin, çıktıyı sıkıştırın veya metin çıkarın.
Ü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.





