Java'da PDF Formunu Doldurma (Eğitim)
IronPDF, Java geliştiricilerinin mevcut PDF'leri yükleyerek, getForm() ile form alanlarına erişerek, setFieldValue() ile değerleri ayarlayarak ve doldurulmuş belgeyi kaydederek PDF formlarını programlı olarak doldurmalarını sağlar. Bu, iş uygulamalarında belge işleme işlemlerini otomatikleştirmeyi basit hale getirir.
Hızlı Başlangıç: Java'da PDF Formu Doldurun
```java {title="FillPDFForm.java"} //:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/quickstart.java // 1. Maven projenize IronPDF bağımlılığını ekleyin // 2. PDF formunuzu yükleyin PdfDocument form = PdfDocument.fromFile("form.pdf"); // 3. Form alanlarını doldurun form.getForm().setFieldValue("firstname", "John"); // 4. Doldurulmuş PDF'yi kaydedin form.saveAs(Paths.get("filled_form.pdf"));
<div class="hsg-featured-snippet">
<h2>Java'da PDF Formunu Doldurma</h2>
<ol>
<li><a class="js-modal-open" data-modal-id="download-modal" href="#download-modal">IronPDF Java kütüphanesini Maven ile yükleyin</a></li>
<li>Form alanları içeren mevcut PDF'yi <code>PdfDocument.fromFile()</code> kullanarak yükleyin</li>
<li>Formu <code>getForm()</code> yöntemi ile erişin</li>
<li>Alan değerlerini <code>setFieldValue(fieldName, value)</code> kullanarak ayarlayın</li>
<li>Doldurulmuş belgeyi <code>saveAs()</code> ile kaydedin</li>
</ol>
</div>
Bu makale, Java'da programatik olarak PDF formlarının nasıl doldurulacağını kapsar. Yaygın bir senaryo, bir uygulamanın arşivleme, uyumluluk veya aşağı yönde işleme için PDF formatında kalıcı olması gereken bir UI üzerinden kullanıcı verilerini topladığı zamandır.
Kullanıcı girdisi yakalandıktan sonra, uygulamalar genellikle bu verileri önceden oluşturulmuş PDF şablonlarına doğrudan eklemelidir. Birden fazla Java PDF kitaplığı bu görevi işler, bunlar arasında [Apache PDFBox](https://pdfbox.apache.org), iText ve IronPDF bulunur. Bu kılavuz, metin alanları, onay kutuları, radyo düğmeleri ve açılır listelerle etkileşimli formları doldurmak için IronPDF'nin nasıl kullanılacağını açıklar. İlgili belge iş akışlarını oluşturan geliştiriciler için, [Java'da sıfırdan PDF formları oluşturma kılavuzunu](https://ironpdf.com/java/how-to/create-forms/) inceleyin.
## IronPDF Java için Nedir?
IronPDF, PDF belgelerini oluşturmak, düzenlemek ve manipüle etmek için [Java PDF kütüphanesidir](https://ironpdf.com/java/). Herhangi bir Maven tabanlı Java projesine entegre olur ve sık karşılaşılan PDF görevlerini minimal sabit kodla gerçekleştirilebilir hale getiren temiz bir API açar.
Kütüphane, PDF yaşam döngüsünün tamamını kapsar: HTML'yi PDF'ye işleme, form verilerini okuma ve yazma, dijital imzalar ekleme, güvenlik ayarlarını uygulama, belgeleri sıkıştırma ve yazdırma. Özellikle formlarla çalışırken, IronPDF, bir PDF belgesindeki her alan türüne programatik erişim sağlar ve orijinal biçimlendirmeyi korur. Bu, toplu form işleme, veritabanı kayıtlarıyla şablonların önceden doldurulması veya form doldurma işleminin daha büyük bir Java iş akışına bağlanması için iyi bir uyum sağlar. Kullanılabilir sınıf ve yöntemlerin tam listesi için [IronPDF Java API referansını](https://ironpdf.com/java/object-reference/api/) inceleyin.
## Maven Projesine IronPDF Nasıl Kurulur?
IronPDF for Java'yı yüklemek üzere `pom.xml` dosyanıza aşağıdaki bağımlılık bloğunu ekleyin.
`pom.xml` dosyasını açın ve bağımlılığı `<dependencies>` öğesinin içine ekleyin, ardından `mvn install` komutunu çalıştırarak kütüphaneyi indirin. Mevcut sürümler [Maven Central](https://search.maven.org/artifact/com.ironsoftware/ironpdf) listesinde yer alır.
```xml
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/maven-dependency.xml
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2024.9.1</version>
</dependency>
Kurulumdan sonra, form doldurma API'sine erişmek için com.ironsoftware.ironpdf.PdfDocument ve com.ironsoftware.ironpdf.render.ChromePdfRenderOptions öğelerini Java sınıfınıza içe aktarın. Bulut platformlarına dağıtım kılavuzu için AWS, Azure ve Google Cloud kılavuzlarına bakın.
PdfDocument çağrısından önce IronPdf.licenseKey sistem özelliğini ayarlayın.HTML Kullanarak Java'da PDF Formu Nasıl Oluşturulur ve Doldurulur?
Tutarlı bir şekilde yapılandırılmış, doldurulabilir bir PDF üretmenin en güvenilir yolu, formu HTML olarak tanımlamak ve IronPDF ile işlemek. Kütüphane, HTML <input> öğelerini doğrudan etkileşimli PDF form alanlarına dönüştürür.
Aşağıdaki kod, bir HTML dizesinden iki alanlı bir PDF formu oluşturur ve her iki alanı da doldurur:
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/create-and-fill-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import java.io.IOException;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) throws IOException {
// Define an HTML form with two text input fields
String formHTML = "<html>"
+ "<body>"
+ "<h2>Editable PDF Form</h2>"
+ "<form>"
+ "First name: <br><input type='text' name='firstname' value=''><br>"
+ "Last name: <br><input type='text' name='lastname' value=''>"
+ "</form>"
+ "</body>"
+ "</html>";
// Enable HTML-to-form-field conversion during rendering
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
renderOptions.setCreatePdfFormsFromHtml(true);
// Render HTML to PDF and save the blank template
PdfDocument.renderHtmlAsPdf(formHTML, renderOptions)
.saveAs(Paths.get("assets/BasicForm.pdf"));
// Load the template and fill in field values
PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm.pdf"));
form.getForm().setFieldValue("firstname", "Minnie");
form.getForm().setFieldValue("lastname", "Mouse");
// Save the completed form to a new file
form.saveAs(Paths.get("assets/BasicForm_Filled.pdf"));
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/create-and-fill-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import java.io.IOException;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) throws IOException {
// Define an HTML form with two text input fields
String formHTML = "<html>"
+ "<body>"
+ "<h2>Editable PDF Form</h2>"
+ "<form>"
+ "First name: <br><input type='text' name='firstname' value=''><br>"
+ "Last name: <br><input type='text' name='lastname' value=''>"
+ "</form>"
+ "</body>"
+ "</html>";
// Enable HTML-to-form-field conversion during rendering
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
renderOptions.setCreatePdfFormsFromHtml(true);
// Render HTML to PDF and save the blank template
PdfDocument.renderHtmlAsPdf(formHTML, renderOptions)
.saveAs(Paths.get("assets/BasicForm.pdf"));
// Load the template and fill in field values
PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm.pdf"));
form.getForm().setFieldValue("firstname", "Minnie");
form.getForm().setFieldValue("lastname", "Mouse");
// Save the completed form to a new file
form.saveAs(Paths.get("assets/BasicForm_Filled.pdf"));
}
}
İlk blokta ChromePdfRenderOptions ile setCreatePdfFormsFromHtml(true) kullanılarak, görüntüleme motoruna HTML <input> öğelerini statik metin yerine canlı PDF form alanları olarak ele alması söylenir. İşlenen PDF, tekrar kullanılabilir bir şablon olarak kaydedilir. İkinci blok bu şablonu yükler, her alan için isme göre getForm().setFieldValue()'yi çağırır ve sonucu ayrı bir çıktı dosyasına yazar, orijinal şablonu ileride kullanılmak üzere olduğu gibi bırakır.
Çıkış Nasıl Görünür?
İlk işleme, herhangi bir PDF okuyucusunda tamamen düzenlenebilir iki boş metin alanı olan bir PDF üretir.

setFieldValue() çalıştırıldıktan sonra, her iki alan da sağlanan verilerle doldurulur:

Oluşturmadığım Mevcut Bir PDF Formu Nasıl Doldururum?
Birçok gerçek dünya iş akışı, halihazırda isimlendirilmiş alanlar içeren üçüncü taraf PDF şablonları (devlet formları, sigorta belgeleri, satıcı sözleşmeleri) alır. Bunları yüklemek ve doldurmak aynı işlemdir: belgeyi yüklemek için PdfDocument.fromFile() kullanın, ardından her alanı adına göre ayarlamak için getForm().setFieldValue() kullanın.
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-existing-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class FillExistingForm {
public static void main(String[] args) throws IOException {
// Load a third-party fillable PDF
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));
// Set text field values by field name
form.getForm().setFieldValue("applicant_name", "Jane Smith");
form.getForm().setFieldValue("date_of_birth", "1985-06-14");
form.getForm().setFieldValue("reference_number", "REF-2024-00421");
// Save the completed application
form.saveAs(Paths.get("output/application_filled.pdf"));
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-existing-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class FillExistingForm {
public static void main(String[] args) throws IOException {
// Load a third-party fillable PDF
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));
// Set text field values by field name
form.getForm().setFieldValue("applicant_name", "Jane Smith");
form.getForm().setFieldValue("date_of_birth", "1985-06-14");
form.getForm().setFieldValue("reference_number", "REF-2024-00421");
// Save the completed application
form.saveAs(Paths.get("output/application_filled.pdf"));
}
}
Mevcut bir PDF'de alan adlarını keşfetmek için, belgeyi Adobe Acrobat Reader'da açın, herhangi bir alana sağ tıklayın ve "Özellikler"'i seçin. Alan adı Genel sekmede görünür. Alternatif olarak, tüm alanları programlı olarak yineleyin:
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/list-form-fields.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.form.FormField;
import java.nio.file.Paths;
public class ListFormFields {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));
// Print the name and type of every form field
for (FormField field : form.getForm().getFields()) {
System.out.println("Field: " + field.getName()
+ " | Type: " + field.getType());
}
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/list-form-fields.java
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.form.FormField;
import java.nio.file.Paths;
public class ListFormFields {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/application.pdf"));
// Print the name and type of every form field
for (FormField field : form.getForm().getFields()) {
System.out.println("Field: " + field.getName()
+ " | Type: " + field.getType());
}
}
}
Verileri yazmadan önce alan adlarını PRINT etmek, setFieldValue()'nin uyuşmayan bir adda sessizce hata vermesini önler. PDF belgelerindeki alan adları büyük/küçük harfe duyarlıdır, bu nedenle "firstname" ve "FirstName" farklı alanlar olarak değerlendirilir.
getForm().getFields() işlevi, FormField nesnelerinin bir listesini döndürür. Her biri getName(), getType() ve getValue()'yi ortaya çıkarır. Bunlar, veritabanı veya CSV dosyası gibi harici bir veri kaynağından alan adlarını okuyan dinamik form-doldurma rutinleri oluştururken faydalıdır.Java'da Onay Kutuları ve Radyo Düğmelerini Nasıl Doldururum?
Metin alanları doğrudan dize değerlerini kabul eder, ancak onay kutuları ve radyo düğmeleri, PDF'nin oluşturma sırasında tanımladığı belirli dışa aktarılan değerleri gerektirir. Her alan için doğru dışa aktarma değeri dizesiyle birlikte setFieldValue() kullanın.
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-checkboxes-radio.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FillCheckboxesAndRadio {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/survey.pdf"));
// Check a checkbox by setting its exported value (often "Yes" or "On")
form.getForm().setFieldValue("agree_terms", "Yes");
// Select a radio button option by its exported value
form.getForm().setFieldValue("preferred_contact", "email");
form.saveAs(Paths.get("output/survey_filled.pdf"));
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-checkboxes-radio.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FillCheckboxesAndRadio {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/survey.pdf"));
// Check a checkbox by setting its exported value (often "Yes" or "On")
form.getForm().setFieldValue("agree_terms", "Yes");
// Select a radio button option by its exported value
form.getForm().setFieldValue("preferred_contact", "email");
form.saveAs(Paths.get("output/survey_filled.pdf"));
}
}
Bir onay kutusunun dışa aktarma değeri genellikle "Yes", "On" veya formun yazarı tarafından belirlenen özel bir dizedir. Radyo düğme grupları için, gruptaki her seçenek aynı alan adını paylaşır, ancak benzersiz bir ihraç edilen değer içerir. Otomatik doldurma rutinlerini yazmadan önce tam ihraç edilen değerleri doğrulamak için önceki bölümdeki alan listeleme tekniğini kullanın.
setFieldValue() bir onay kutusunu işaretlemek veya bir radyo düğmesini seçmek için görünmüyorsa, dışa aktarma değeri dizesi muhtemelen yanlıştır. getFields() ile alanı listeleyin ve doğru dizeyi almak için PDF'nin manuel olarak kontrol edilmiş bir kopyasında getValue()'yi inceleyin.Java Kullanarak Bir PDF Formunda Açılır Listeleri Nasıl Doldururum?
Açılır liste alanları (kombinasyon kutusu alanları olarak da adlandırılır) metin alanlarıyla aynı API'yi kullanır. Seçeneğin dışa aktarma değerini bir dize olarak setFieldValue()'ye aktarın. İhraç edilen değer, form yazarı ayrı bir alt değer tanımlamadıysa genellikle görünen seçenek metnidir.
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-dropdown.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FillDropdown {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/registration.pdf"));
// Set a dropdown/combo box field to a specific option
form.getForm().setFieldValue("country", "United States");
// Set a list box field (multi-select may require comma-separated values)
form.getForm().setFieldValue("subscription_tier", "Professional");
form.saveAs(Paths.get("output/registration_filled.pdf"));
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/fill-dropdown.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FillDropdown {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("templates/registration.pdf"));
// Set a dropdown/combo box field to a specific option
form.getForm().setFieldValue("country", "United States");
// Set a list box field (multi-select may require comma-separated values)
form.getForm().setFieldValue("subscription_tier", "Professional");
form.saveAs(Paths.get("output/registration_filled.pdf"));
}
}
Açılır menüdeki dışa aktarma değeri, görünür etiketten farklıysa, getFields() kullanarak alanın mevcut seçeneklerini inceleyin. Alan tanımındaki herhangi bir seçeneğe uymayan bir değer göndermek, seçim değişmeden bırakılır ve istisna atılmaz, bu nedenle toplu bir işlemden önce ihraç değerlerini doğrulamak sessiz veri kaybını önler.
FormField'yi FormComboBoxField'ye dönüştürün ve getOptions()'yi çağırın. Bu, o açılır liste için geçerli ihraç değerlerinin listesini döndürür.Java'da Doldurulmuş Bir PDF Formunu Nasıl Düzleştiririm?
Düzleştirme tüm form alanlarını statik, düzenlenemez içeriğe dönüştürür. Bu, alıcıların gönderilen verileri değiştirmesini önler ve birçok arşivleme ve uyumluluk kullanım durumu için gereklidir. IronPDF, form düzleştirmeyi PDF manipülasyon özelliklerinin bir parçası olarak destekler.
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/flatten-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FlattenForm {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm_Filled.pdf"));
// Flatten all form fields -- values become static text
form.getForm().flatten();
form.saveAs(Paths.get("output/BasicForm_Archived.pdf"));
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/flatten-form.java
import com.ironsoftware.ironpdf.PdfDocument;
import java.nio.file.Paths;
public class FlattenForm {
public static void main(String[] args) throws Exception {
PdfDocument form = PdfDocument.fromFile(Paths.get("assets/BasicForm_Filled.pdf"));
// Flatten all form fields -- values become static text
form.getForm().flatten();
form.saveAs(Paths.get("output/BasicForm_Archived.pdf"));
}
}
flatten() çalıştırıldıktan sonra, çıktı PDF'sinde etkileşimli form alanları kalmaz. Belge boyutu, form alanı kaplama katmanları kaldırıldığı için genellikle azalır. Düzleştirilmiş PDF'ler, alıcıların gönderilen değerleri düzenleme riski olmadan dağıtılabilir.
Java'da PDF Form Doldurma İçin Sonraki Adımlar Nelerdir?
IronPDF, Java'da PDF formları doldurmak için odaklanmış, düşük şablon API'si sağlar. getForm() yöntemi, metin alanlarına, onay kutularına, radyo düğmelerine ve açılır listelere doğrudan erişim sağlar. Arşivleme gerektiğinde, flatten() doldurulmuş tüm verileri statik içerik olarak kilitler.
PDF belge iş akışınızın bir sonraki aşamaları için bu kılavuzları keşfedin:
- Java'da HTML'den PDF formları oluşturun: programlı olarak özel form şablonları oluşturun
- Java'da HTML'den PDF'ye dönüşüm: Tam HTML sayfalarını ve parçalarını PDF belgeleri olarak dönüştürün
- PDF güvenliği ve parola koruması: Dağıtımdan önce doldurulmuş formlara erişimi sınırlandırın
- Java İçin PDF'de Dijital İmzalar: tamamlanmış formları özgünlüğü sağlamak için imzalayın
- IronPDF Java API referansı: eksiksiz sınıf ve metod belgeleri
Kendi projenizde form doldurmayı test etmek için IronPDF for Java'nın ücretsiz deneme sürümünü başlatın. Dağıtıma hazır olduğunuzda, IronPDF lisanslama seçeneklerini görüntüleyin ve ekibinizin ihtiyaçlarına uygun bir plan bulun.
Sıkça Sorulan Sorular
Java'da bir PDF formunu doldurmanın temel adımları nelerdir?
IronPDF Maven bağımlılığını ekleyin, PDF'nizi PdfDocument.fromFile() ile yükleyin, getForm() ile form alanlarına erişin, her alan için setFieldValue(fieldName, value) çağırın ve sonucu saveAs() ile kaydedin.
Mevcut bir PDF'de alan adlarını nasıl keşfederim?
PDF'yi Adobe Acrobat Reader ile açın, herhangi bir alana sağ tıklayın ve Özellikler'i seçin. Alan adı Genel sekmesinde görünür. Alternatif olarak, getForm().getFields() çağırarak tüm alanları yineleyin ve her bir getName() ve getType()'ı programlı olarak yazdırın.
Java'da onay kutularını ve radyo düğmelerini nasıl doldururum?
Alanın dışa aktarma değer dizgesi ile setFieldValue() kullanın. Onay kutusu dışa aktarma değerleri genellikle Evet veya Açık olur. Radyo düğmesi grupları için her seçenek aynı alan adını paylaşır, ancak benzersiz bir dışa aktarma değeri vardır. Alan yanıt vermezse, doğru dizeyi bulmak için PDF'nin manuel olarak işaretlenmiş bir kopyası üzerindeki getValue()'yu inceleyin.
Bir açılır liste alanını nasıl doldururum?
setFieldValue(fieldName, optionValue) dışa aktarma değeri ile çağırın. Dışa aktarma değeri genellikle görünür seçenek metnidir. Mevcut seçenekleri programatik olarak listelemek için FormField'ı FormComboBoxField olarak cast edin ve getOptions() çağırın.
Bir PDF formunun düzleştirilmesi ne yapar?
Düzleştirme tüm etkileşimli form alanlarını statik, düzenlenemez içeriğe dönüştürür. Kaydetmeden önce getForm().flatten() çağırın. Ortaya çıkan PDF, alıcılar tarafından düzenlenemez; bu, birçok arşivleme ve uyumluluk çalışma akışı için gereklidir.
Diğer araçlar tarafından oluşturulan formları IronPDF doldurabilir mi?
Evet. PdfDocument.fromFile(), nasıl oluşturulmuş olursa olsun herhangi bir standart doldurulabilir PDF'yi yükler. Alan adları büyük/küçük harfe duyarlı olduğundan ve form yazarına göre farklılık gösterebildiğinden, setFieldValue() çağırmadan önce alan adlarını incelemek için getForm().getFields() kullanın.


