IRONSOFTWAREHOME

Jak wypełnić formularz PDF w Java (Poradnik)

Curtis Chau
Curtis Chau
Updated: 29 czerwca 2026

IronPDF umożliwia programistom Java programowe wypełnianie formularzy PDF poprzez ładowanie istniejących plików PDF, uzyskiwanie dostępu do pól formularza z getForm(), ustawianie wartości z setFieldValue() i zapisywanie wypełnionego dokumentu. To sprawia, że ​​automatyzacja przetwarzania dokumentów w aplikacjach biznesowych jest prostsza.

Szybki start: Wypelnij formularz PDF w Java
//:path=/static-assets/pdf/content-code-examples/how-to/java-fill-pdf-form-tutorial/quickstart.java
// 1. Dodaj zależność IronPDF do projektu Maven
// 2. Wczytaj swoj formularz PDF
PdfDocument form = PdfDocument.fromFile("form.pdf");
// 3. Wypelnij pola formularza
form.getForm().setFieldValue("firstname", "John");
// 4. Zapisz wypelniony PDF
form.saveAs(Paths.get("filled_form.pdf"));
Text

Ten artykuł omawia, jak programowo wypełniać formularze PDF w Java. Częstym scenariuszem jest, gdy aplikacja zbiera dane użytkownika przez UI, które muszą być zachowane w formacie PDF do archiwizacji, zgodności lub przetwarzania dalszego.

Po przechwyceniu danych wejściowych użytkownika, aplikacje często muszą wstrzykiwać te dane bezpośrednio do istniejących szablonów PDF. Wiele bibliotek PDF dla Java obsługuje to zadanie, w tym Apache PDFBox, iText, i IronPDF. Ten przewodnik wyjaśnia, jak używać IronPDF do wypełniania interaktywnych formularzy z polami tekstowymi, polami wyboru, przyciskami radiowymi i listami rozwijanymi. Dla deweloperów budujących powiązane przepływy dokumentów, zobacz przewodnik tworzenie formularzy PDF od podstaw w Java.

Czym jest IronPDF dla Java?

IronPDF to Java PDF library do tworzenia, edytowania i manipulowania dokumentami PDF. Integruje się z każdym projektem Java opartym na Maven i udostępnia czysty interfejs API, który umożliwia osiągnięcie typowych zadań PDF z minimalnym nadmiarem kodu.

Biblioteka pokrywa cały cykl życia PDF: renderowanie HTML do PDF, odczytywanie i zapisywanie danych formularzy, dodawanie podpisów cyfrowych, zastosowanie ustawień bezpieczeństwa, kompresję dokumentów i drukowanie. Dla pracy z formularzami w szczególności, IronPDF daje programowy dostęp do każdego typu pola w dokumencie PDF, zachowując oryginalne formatowanie. To sprawia, że ​​jest dobrze dopasowany do przetwarzania partii formularzy, wstępnego wypełniania szablonów za pomocą rekordów z bazy danych, lub łączenia wypełniania formularzy w większym przepływie pracy Java. Zobacz dokumentację API IronPDF dla Java dla pełnej listy dostępnych klas i metod.

Jak zainstalować IronPDF w projekcie Maven?

Dodaj poniższy blok zależności do pliku pom.xml, aby zainstalować IronPDF dla Java.

Otwórz pom.xml i wstaw zależność wewnątrz elementu <dependencies>, następnie uruchom mvn install, aby pobrać bibliotekę. Dostępne wersje są wymienione na Maven Central.

//: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>
XML

Po instalacji zaimportuj com.ironsoftware.ironpdf.PdfDocument i com.ironsoftware.ironpdf.render.ChromePdfRenderOptions w swojej klasie Java, aby uzyskać dostęp do API wypełniania formularzy. Dla wskazówek dotyczących wdrożenia na platformach chmurowych, zobacz przewodniki dla AWS, Azure i Google Cloud.

Porady: Podczas pracy z IronPDF w środowisku Docker lub kontenerowym ustaw właściwość systemu IronPdf.licenseKey przed pierwszym wywołaniem PdfDocument, aby uniknąć opóźnień weryfikacji licencji w czasie wykonania.

Jak stworzyć i wypełnić formularz PDF używając HTML w Java?

Najbardziej niezawodny sposób, aby uzyskać spójnie ustrukturyzowany, wypełnialny PDF, to zdefiniowanie formularza w HTML i renderowanie go przy użyciu IronPDF. Biblioteka konwertuje elementy HTML <input> bezpośrednio na interaktywne pola formularzy PDF.

Poniższy kod tworzy formularz PDF z dwoma polami z ciągu HTML, a następnie wypełnia oba pola:

//: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"));
    }
}
Java

Pierwszy blok używa ChromePdfRenderOptions z setCreatePdfFormsFromHtml(true), aby powiedzieć silnikowi renderującemu, aby traktował elementy HTML <input> jako aktywne pola formularzy PDF zamiast jako statyczny tekst. Renderowany PDF jest zapisywany jako szablon do ponownego użycia. Drugi blok ładuje ten szablon, wywołuje getForm().setFieldValue() dla każdego pola po nazwie i zapisuje wynik do oddzielnego pliku wyjściowego, pozostawiając oryginalny szablon nienaruszony do przyszłego użytku.

Jak wygląda wynik?

Pierwszy rendering tworzy PDF z dwoma pustymi polami tekstowymi, w pełni edytowalnymi w dowolnym czytniku PDF.

Prosty formularz PDF pokazuje edytowalne pola tekstowe imienia i nazwiska z niebieskimi obramowaniami, wyrenderowane przez IronPDF z HTML

Po uruchomieniu setFieldValue() oba pola są wypełniane dostarczonymi danymi:

Wynik IronPDF Java: formularz PDF z wartością "Minnie" w polu Imię i "Mouse" w polu Nazwisko, przedstawiający pomyślnie wypełnione dane formularza

Jak wypełnić istniejący formularz PDF, którego nie stworzyłem?

Wiele rzeczywistych ścieżek pracy otrzymuje zewnętrzne szablony PDF (formularze rządowe, dokumenty ubezpieczeniowe, umowy z dostawcami), które już zawierają nazwane pola. Ładowanie i wypełnianie formularzy następuje tak samo: użyj PdfDocument.fromFile(), aby załadować dokument, a potem getForm().setFieldValue(), aby ustawić każde pole po jego nazwie.

//: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"));
    }
}
Java

Aby odkryć nazwy pól w istniejącym PDF, otwórz dokument w Adobe Acrobat Reader, kliknij prawym przyciskiem myszy na dowolne pole i wybierz "Właściwości". Nazwa pola pojawia się na karcie Ogólne. Alternatywnie, iteruj programowo po wszystkich polach:

//: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());
        }
    }
}
Java

Drukowanie nazw pól przed zapisaniem danych zapobiega setFieldValue() cichym niepowodzeniom na niezgodną nazwę. Nazwy pól w dokumentach PDF są czułe na wielkość liter, więc "firstname" i "FirstName" są traktowane jako różne pola.

Zwróć uwagę: Metoda getForm().getFields() w IronPDF zwraca listę obiektów FormField. Każdy z nich udostępnia getName(), getType(), i getValue(). Są one przydatne podczas tworzenia dynamicznych procedur wypełniania formularzy, które odczytują nazwy pól z zewnętrznych źródeł danych, takich jak baza danych lub plik CSV.

Jak wypełnić pola wyboru i przyciski radiowe w Java?

Pola tekstowe akceptują wartości ciągów, ale pola wyboru i przyciski radiowe wymagają określonych wartości eksportowanych, które PDF definiuje na etapie tworzenia dokumentu. Użyj setFieldValue() z poprawną wartością eksportową ciągu znaków dla każdego pola.

//: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"));
    }
}
Java

Wartość eksportowa dla pola wyboru to zazwyczaj "Yes", "On", lub niestandardowy ciąg ustawiony przez autora formularza. Dla grup przycisków radiowych każda opcja w grupie dzieli tę samą nazwę pola, ale ma unikalną wartość eksportu. Użyj techniki listowania pól z poprzedniej sekcji, aby potwierdzić dokładne wartości eksportu przed zapisaniem zautomatyzowanych procedur wypełniania.

Ważne: Jeśli setFieldValue() nie pokazuje zaznaczenia pola wyboru lub przycisku radiowego, prawdopodobnie jest to błędna wartość eksportowa ciągu. Lista pola za pomocą getFields() i skontroluj getValue() na ręcznie zaznaczonej kopii PDF, aby uzyskać poprawny ciąg znaków.

Jak wypełnić listy rozwijane w formularzu PDF przy użyciu Java?

Pola list rozwijanych (zwane także polami kombi) używają tego samego API, co pola tekstowe. Przekaż wartość eksportową opcji jako ciąg znaków do setFieldValue(). Wartość eksportu to zazwyczaj widoczny tekst opcji, jeżeli autor formularza nie zdefiniował oddzielnej wartości podstawowej.

//: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"));
    }
}
Java

Kiedy wartość eksportowa listy rozwijanej różni się od widocznej etykiety, użyj getFields(), aby skontrolować dostępne opcje pola. Przekazanie wartości, która nie pasuje do żadnej opcji zdefiniowanej w polu, pozostawia wybór niezmieniony bez wyrzucania wyjątku, więc walidacja wartości eksportu przed partią zapisów unika cichej utraty danych.

Porady: Aby sprawdzić wszystkie dostępne opcje dla pola kombi, zrzutuj FormField na FormComboBoxField i wywołaj getOptions(). Zwraca to listę prawidłowych wartości eksportu dla tej listy rozwijanej.

Jak spłaszczyć wypełniony formularz PDF w Java?

Spłaszczenie przekształca wszystkie pola formularza w statyczną, niedadetowalną zawartość. To zapobiega zmianie przesłanych danych przez odbiorców i jest wymagane do wielu przypadków użycia archiwizacji i zgodności. IronPDF obsługuje spłaszczanie formularzy jako część swoich możliwości manipulacji 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"));
    }
}
Java

Po uruchomieniu flatten() w wyjściowym pliku PDF nie pozostają żadne interaktywne pola formularzy. Rozmiar dokumentu zazwyczaj zmniejsza się, ponieważ warstwy nakładki pól formularzy są usunięte. Spłaszczone pliki PDF są bezpieczne do dystrybucji bez ryzyka edytowania przesłanych wartości przez odbiorców.

Jakie są kolejne kroki w wypełnianiu formularzy PDF w Java?

IronPDF udostępnia skoncentrowane, mało zbiuroaktywizowane API do wypełniania formularzy PDF w Java. Metoda getForm() daje bezpośredni dostęp do pól tekstowych, pól wyboru, przycisków radiowych i list rozwijanych. Kiedy wymagana jest archiwizacja, flatten() blokuje wszystkie wypełnione dane jako statyczną treść.

Dla kolejnych etapów przepływu pracy z dokumentami PDF, zapoznaj się z tymi przewodnikami:

Rozpocznij bezpłatny okres próbny IronPDF for Java, aby przetestować wypełnianie formularzy w swoim własnym projekcie. Kiedy będziesz gotowy do wdrożenia, zobacz opcje licencjonowania IronPDF, aby znaleźć plan odpowiedni do potrzeb Twojego zespołu.

Często Zadawane Pytania

Jakie są podstawowe kroki wypełniania formularza PDF w Java?

Dodaj zależność IronPDF Maven, załaduj swój PDF za pomocą PdfDocument.fromFile(), uzyskaj dostęp do pól formularza za pomocą getForm(), wywołaj setFieldValue(fieldName, value) dla każdego pola i zapisz wynik za pomocą saveAs().

Jak odkryć nazwy pól w istniejącym PDF?

Otwórz PDF w Adobe Acrobat Reader, kliknij prawym przyciskiem myszy dowolne pole i wybierz Właściwości. Nazwa pola pojawia się na karcie Ogólne. Alternatywnie, wywołaj getForm().getFields(), aby iterować wszystkie pola i wydrukować każdą z metod getName() i getType() programowo.

Jak wypełnić pola wyboru i przyciski radiowe w Java?

Użyj setFieldValue() z ciągiem eksportowej wartości pola. Wartości eksportowe pól wyboru są zazwyczaj Yes lub On. Dla grup przycisków radiowych, każda opcja dzieli tę samą nazwę pola, ale ma unikalną wartość eksportową. Jeśli pole nie reaguje, sprawdź getValue() na ręcznie zaznaczonej kopii PDF, aby znaleźć poprawny ciąg.

Jak wypełnić pole listy rozwijanej?

Wywołaj setFieldValue(fieldName, optionValue) z eksportową wartością opcji. Wartość eksportowa to zazwyczaj widoczny tekst opcji. Aby programowo wymienić dostępne opcje, rzutuj FormField do FormComboBoxField i wywołaj getOptions().

Czym jest spłaszczanie formularza PDF?

Spłaszczenie konwertuje wszystkie interaktywne pola formularzy na statyczną, nieedytowalną treść. Wywołaj getForm().flatten() przed zapisaniem. Wynikowy PDF nie może być edytowany przez odbiorców, co jest wymagane dla wielu przepływów pracy związanych z archiwizacją i zgodnością.

Czy IronPDF może wypełnić formularze stworzone przez inne narzędzia?

Tak. PdfDocument.fromFile() załadowuje każdy standardowy formularz PDF bez względu na to, jak został utworzony. Użyj getForm().getFields(), aby sprawdzić nazwy pól przed wywołaniem setFieldValue(), ponieważ nazwy pól są rozróżniane dla wielkości liter i różni się w zależności od autora formularza.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Wersja:2026.6właśnie wydany

Odbierz swój BEZPŁATNY

30-dniowy klucz próbny natychmiast.

bullet_checkedNie wymaga karty kredytowej ani tworzenia konta
test_punktorówTestuj w produkcji
bez znaków wodnych
kalendarz_punktorów30 dni w pełni
funkcjonalny produkt
wsparcie_punktorów24/5 wsparcie techniczne
w trakcie okresu próbnego
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka Java Maven dla PDF
Zainstaluj za pomocą Maven

Wersja: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
lub
Plik JAR PDF Java
Pobierz JAR

Wersja: 2026.6

Pobierz teraz

Ręcznie zainstaluj w swoim projekcie

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta