Node.js'de PDF Form Alanları Nasıl Doldurulur

This article was translated from English: Does it need improvement?
Translated
View the article in English

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
SHELL
: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");
})();
JAVASCRIPT

Node.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.js
const { IronPdfGlobalConfig } = require("@ironsoftware/ironpdf");

// Apply once at startup -- before any PdfDocument operations
IronPdfGlobalConfig.getConfig().licenseKey = process.env.IRONPDF_LICENSE_KEY;
JAVASCRIPT

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/ironpdf
SHELL

Paket, 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.

Lütfen dikkate alınTypeScript projeleri için dahil edilen .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);
JAVASCRIPT

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.

İpuçları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.


Icon Quote related to Tam Form Doldurma Örneği Nasıl Görünür?

Bu türden favori kütüphanem IronPDF'dir. PDF dosyalarının hızlı ve verimli bir şekilde işlenmesine olanak tanır. Ayrıca, PDF/A formatına dışa aktarma ve dijital imzalama gibi birçok değerli özelliğe sahiptir.

Milan Jovanovic related to Tam Form Doldurma Örneği Nasıl Görünür?

Milan Jovanovic

Microsoft MVP

Vaka çalışmasını görüntüle
Icon Quote related to Tam Form Doldurma Örneği Nasıl Görünür?

IronOCR, manuel işleme maliyetinden yıllık 40.000 USD tasarruf etmemizi sağlıyor, üretkenliği artırıyor ve yüksek etkili görevler için kaynakları serbest bırakıyor. Kesinlikle tavsiye ederim.

Brent Matzelle related to Tam Form Doldurma Örneği Nasıl Görünür?

Brent Matzelle

Teknoloji Müdürü, OPYN

Vaka çalışmasını görüntüle
Icon Quote related to Tam Form Doldurma Örneği Nasıl Görünür?

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.

David Jones related to Tam Form Doldurma Örneği Nasıl Görünür?

David Jones

Baş Yazılım Mühendisi, Agorus Build

Vaka çalışmasını görüntüle

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:

PDF AcroForm alan türleri ve kabul edilen değer formatları
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üğmesiSeç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ısalDize 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);
JAVASCRIPT

Ç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.

ÖnemliBir alanın değerini değiştirmiyor gibi görünüyorsa 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);
JAVASCRIPT

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.

UyarıDüzleştirme, kaydedilen kopya üzerinde geri döndürülemez. Belgeyi yeniden oluşturmanız gerekiyorsa, orijinal, doldurulmamış PDF'yi bir şablon olarak saklayın.


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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Sürüm: 2026.6 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz?
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.