Jak utworzyć PDF w Java używając IronPDF

Jak tworzyć pliki PDF w Java

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

Tworzenie plików PDF w Java jest częstym wymaganiem dla aplikacji biznesowych: generowanie faktur i raportów na żądanie, produkcja certyfikatów, pokwitowań oraz dzienników audytów. IronPDF for Java konwertuje HTML do PDF za pomocą pełnego silnika renderującego Chromium, co oznacza, że każdy HTML5, CSS3 i JavaScript jest wiernie renderowany, bez utraty formatowania.

Ten przewodnik obejmuje trzy metody tworzenia PDF: z ciągu HTML, z lokalnego pliku HTML oraz z żywego URL. Obejmuje również formatowanie stron, ochronę hasłem i integrację z Spring Boot.

Krótki przewodnik: Tworzenie PDF z HTML w Java

  1. Dodaj IronPDF do swojego pom.xml:
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/maven-dependency.xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/maven-dependency.xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>
XML
  1. Zaimportuj bibliotekę i utwórz PDF:
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/quickstart.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Set your license key (remove watermarks in production)
License.setLicenseKey("Your-License-Key");

// Convert HTML string to PDF and save
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello, IronPDF!</h1>");
pdf.saveAs(Paths.get("output.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/quickstart.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Set your license key (remove watermarks in production)
License.setLicenseKey("Your-License-Key");

// Convert HTML string to PDF and save
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello, IronPDF!</h1>");
pdf.saveAs(Paths.get("output.pdf"));
JAVA

Czym jest IronPDF for Java i dlaczego warto go używać?

IronPDF for Java to biblioteka do generowania i manipulacji plikami PDF zbudowana na silniku renderującym Chromium. Ponieważ renderuje HTML dokładnie tak, jak Chrome, radzi sobie z złożonymi układami, niestandardowymi czcionkami, animacjami CSS, treścią generowaną przez JavaScript i osadzonymi obrazami bez potrzeby ręcznego kodowania układu.

Biblioteka obejmuje cały cykl życia PDF w jednej zależności. Deweloperzy mogą tworzyć dokumenty od zera, konwertować istniejącą treść HTML, łączyć lub dzielić pliki, dodawać znaki wodne, szyfrować hasłami, wyodrębniać tekst i obrazy, oraz generować formularze wypełnialne, wszystko za pomocą spójnego API. Dla przepływów pracy opartych na HTML, IronPDF unika ręcznych obliczeń układu strony wymaganych przez niższopoziomowe biblioteki PDF, takie jak Apache PDFBox.

W odróżnieniu od iText, który wymaga otwartego licencjonowania AGPL na większość zastosowań komercyjnych, IronPDF dostarcza przyjazne komercjalizacyjne licencjonowanie i nie wymaga złożonej weryfikacji zgodności licencyjnej. IronPDF for Java jest dostarczane jako artefakt Maven i działa na Windows, Linux i macOS. Integruje się z Spring Boot, Jakarta EE oraz samodzielnymi aplikacjami Java. Biblioteka wspiera również wdrożenia serwerowe na AWS, Azure oraz Google Cloud.

Zwróć uwagęIronPDF renderuje przy użyciu Chrom dozesowujące()) Ten sam HTML, który wygląda poprawnie w Chrome, produkuje ten sam wynik w twoim PDF, bez niespodzianek formatowania przeglądarka-do-PDF.

Jakie są wymagania wstępne do używania IronPDF w Java?

Jaka wersja Java i jakie narzędzie do budowy są wymagane?

IronPDF for Java wymaga JDK 8 lub nowszego. Zalecanym minimum jest JDK 11 (LTS) do użytku produkcyjnego. Download the JDK from the Oracle download page or use an OpenJDK distribution such as Eclipse Temurin.

Maven (3.6+) i Gradle (7.0+) są oba wspierane. Maven jest bardziej powszechnym wyborem dla projektów Java w przedsiębiorstwie.

Jak dodać IronPDF do projektu Maven?

Otwórz plik pom.xml swojego projektu i dodaj następującą zależność w bloku <dependencies>:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/maven-full.xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/maven-full.xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>
XML

Po zapisaniu uruchom mvn install lub pozwól, aby Twoje środowisko IDE automatycznie rozwiązało zależność. Maven pobiera IronPDF z Maven Central, więc nie jest potrzebna konfiguracja prywatnego repozytorium.

Jak dodać IronPDF do projektu Gradle?

Dodaj następujący wiersz do bloku dependencies w pliku build.gradle:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/gradle-dependency.gradle
implementation 'com.ironsoftware:ironpdf:2024.9.1'

Uruchom gradle build, aby pobrać bibliotekę. Check Maven Central for the latest published version.

Jakie są wymagane importy i konfiguracja?

Dodaj te polecenia importu na początku swojego pliku źródłowego Java:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/imports.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import com.ironsoftware.ironpdf.render.PaperOrientation;
import com.ironsoftware.ironpdf.render.PaperSize;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.security.SecurityManager;
import java.io.IOException;
import java.nio.file.Paths;
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/imports.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.ChromePdfRenderOptions;
import com.ironsoftware.ironpdf.render.PaperOrientation;
import com.ironsoftware.ironpdf.render.PaperSize;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.security.SecurityManager;
import java.io.IOException;
import java.nio.file.Paths;
JAVA

Przed wygenerowaniem jakichkolwiek plików PDF należy ustawić klucz licencyjny w metodzie main lub podczas uruchamiania aplikacji:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/license-setup.java
License.setLicenseKey("Your-License-Key");
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/license-setup.java
License.setLicenseKey("Your-License-Key");
JAVA

Uwagi: Bez ważnego klucza licencyjnego, pliki PDF są generowane z próbnym znakiem wodnym. Kup licencję lub rozpocznij bezpłatny okres próbny, aby ją usunąć. Zobacz używanie kluczy licencyjnych w Java dla dodatkowych opcji konfiguracji.

Jak utworzyć PDF z ciągu HTML w Java?

Przekaż dowolny ciąg HTML bezpośrednio do PdfDocument.renderHtmlAsPdf(). IronPDF zwraca instancję PdfDocument reprezentującą gotowy dokument w pamięci. Wywołaj saveAs(), aby zapisać to na dysku.

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-string-to-pdf.java
// HTML content with inline CSS
String htmlContent = "<h1>Hello World!</h1><p>This is an example HTML string.</p>";

// Render HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save to disk
pdf.saveAs(Paths.get("html.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-string-to-pdf.java
// HTML content with inline CSS
String htmlContent = "<h1>Hello World!</h1><p>This is an example HTML string.</p>";

// Render HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save to disk
pdf.saveAs(Paths.get("html.pdf"));
JAVA

renderHtmlAsPdf() obsługuje pełną specyfikację HTML5 i CSS3, w tym czcionki internetowe, Flexbox, układy siatki oraz wykonywanie kodu JavaScript. Poniższy przykład używa wieloliniowego szablonu HTML z niestandardowymi stylami:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-string-styled.java
// Multi-line HTML with CSS styling using a text block (Java 13+)
String styledHtml = """
    <!DOCTYPE html>
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; margin: 40px; }
            h1 { color: #2563eb; border-bottom: 2px solid #e5e7eb; padding-bottom: 8px; }
            .summary { background: #f3f4f6; padding: 16px; border-radius: 4px; }
        </style>
    </head>
    <body>
        <h1>Invoice #1042</h1>
        <div class="summary">
            <p>Amount due: $1,250.00</p>
            <p>Due date: 2024-06-01</p>
        </div>
    </body>
    </html>
    """;

PdfDocument invoice = PdfDocument.renderHtmlAsPdf(styledHtml);
invoice.saveAs(Paths.get("invoice.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-string-styled.java
// Multi-line HTML with CSS styling using a text block (Java 13+)
String styledHtml = """
    <!DOCTYPE html>
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; margin: 40px; }
            h1 { color: #2563eb; border-bottom: 2px solid #e5e7eb; padding-bottom: 8px; }
            .summary { background: #f3f4f6; padding: 16px; border-radius: 4px; }
        </style>
    </head>
    <body>
        <h1>Invoice #1042</h1>
        <div class="summary">
            <p>Amount due: $1,250.00</p>
            <p>Due date: 2024-06-01</p>
        </div>
    </body>
    </html>
    """;

PdfDocument invoice = PdfDocument.renderHtmlAsPdf(styledHtml);
invoice.saveAs(Paths.get("invoice.pdf"));
JAVA

Przykład faktury powyżej używa bloków tekstowych Java (dostępnych od Java 13) dla czystszych wieloliniowych HTML. W przypadku starszych wersji Javy należy ręcznie połączyć ciąg HTML lub załadować go z pliku za pomocą renderHtmlFileAsPdf(). Dla ogólniejszego spojrzenia na konwersję HTML do PDF, w tym renderowanie JavaScript, zobacz HTML do PDF tutorial dla Java.

PoradyPodczas przekazywania krótkich ciągów HTML, IronPDF automatycznie opakuje zawartość w minimalny dokument HTML. Dla pełnej kontroli nad tagami head, meta charset i resetami CSS przekaż kompletny dokument <!DOCTYPE html>.

Jak utworzyć PDF z lokalnego pliku HTML w Java?

Użyj PdfDocument.renderHtmlFileAsPdf(), aby przekonwertować plik HTML przechowywany w lokalnym systemie plików. Przekaż ścieżkę jako ciąg; ścieżki względne są rozwiązywane względem bieżącego katalogu roboczego:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-file-to-pdf.java
// Convert a local HTML file to PDF
PdfDocument filePdf = PdfDocument.renderHtmlFileAsPdf("invoice-template.html");

// Save the converted document
filePdf.saveAs(Paths.get("invoice_output.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/html-file-to-pdf.java
// Convert a local HTML file to PDF
PdfDocument filePdf = PdfDocument.renderHtmlFileAsPdf("invoice-template.html");

// Save the converted document
filePdf.saveAs(Paths.get("invoice_output.pdf"));
JAVA

IronPDF rozwiązuje wszystkie odwoływane zasoby (zewnętrzne pliki CSS, lokalne obrazy i biblioteki JavaScript) względem katalogu pliku HTML. To oznacza, że możesz zbudować kompletny szablon HTML z powiązanymi arkuszami stylów i uruchomić go przez IronPDF, nie modyfikując żadnych ścieżek zasobów.

Metoda akceptuje zarówno ścieżkę String, jak i obiekt java.nio.file.Path. Do użycia produkcyjnego preferuj ścieżki absolutne, aby uniknąć niejednoznaczności w ścieżkach roboczych. Zobacz przykład konwersji pliku HTML na PDF dla pełnego funkcjonującego przykładu.

Jak stworzyć PDF z URL strony internetowej w Java?

PdfDocument.renderUrlAsPdf() pobiera aktualny adres URL, renderuje go przy użyciu Chromium i zwraca plik PDF. Jest to przydatne do robienia zrzutów kokpitu, generowania paragonów PDF z hostowanych stron paragonów lub archiwizowania treści web:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/url-to-pdf.java
// Render a live web page to PDF
PdfDocument webPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
webPdf.saveAs(Paths.get("ironpdf-homepage.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/url-to-pdf.java
// Render a live web page to PDF
PdfDocument webPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
webPdf.saveAs(Paths.get("ironpdf-homepage.pdf"));
JAVA

W przypadku stron wymagających uwierzytelnienia HTTP należy przekazać dane uwierzytelniające za pomocą ChromePdfRenderOptions:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/url-to-pdf-auth.java
// Configure render options with login credentials
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
renderOptions.setAuthUsername("username");
renderOptions.setAuthPassword("password");

// Render authenticated page to PDF
PdfDocument securedPdf = PdfDocument.renderUrlAsPdf("https://your-internal-app.com/report", renderOptions);
securedPdf.saveAs(Paths.get("internal-report.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/url-to-pdf-auth.java
// Configure render options with login credentials
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();
renderOptions.setAuthUsername("username");
renderOptions.setAuthPassword("password");

// Render authenticated page to PDF
PdfDocument securedPdf = PdfDocument.renderUrlAsPdf("https://your-internal-app.com/report", renderOptions);
securedPdf.saveAs(Paths.get("internal-report.pdf"));
JAVA

Zobacz przykład kodu konwersji URL na PDF dla szczegółów. Dla bardziej złożonych ścieżek logowania przy użyciu ciasteczek lub uwierzytelniania opartego na formularzach, zobacz obsługę logowania na stronach internetowych.

Jak kontrolować rozmiar strony, orientację i marginesy?

Użyj ChromePdfRenderOptions, aby dostosować układ fizyczny wyjściowego pliku PDF. Przekaż skonfigurowane opcje jako drugi argument do dowolnej metody renderowania. Najczęstsze ustawienia to orientacja strony, rozmiar papieru i marginesy:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/pdf-formatting.java
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();

// Set landscape orientation (default is portrait)
renderOptions.setPaperOrientation(PaperOrientation.LANDSCAPE);

// Use US Letter paper size (default is A4)
renderOptions.setPaperSize(PaperSize.LETTER);

// Set margins in millimeters (top, right, bottom, left)
renderOptions.setMarginTop(15);
renderOptions.setMarginRight(15);
renderOptions.setMarginBottom(15);
renderOptions.setMarginLeft(15);

// Include background colors and images
renderOptions.setPrintHtmlBackgrounds(true);

// Apply options when rendering
PdfDocument report = PdfDocument.renderHtmlAsPdf("<h1>Quarterly Report</h1>", renderOptions);
report.saveAs(Paths.get("report.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/pdf-formatting.java
ChromePdfRenderOptions renderOptions = new ChromePdfRenderOptions();

// Set landscape orientation (default is portrait)
renderOptions.setPaperOrientation(PaperOrientation.LANDSCAPE);

// Use US Letter paper size (default is A4)
renderOptions.setPaperSize(PaperSize.LETTER);

// Set margins in millimeters (top, right, bottom, left)
renderOptions.setMarginTop(15);
renderOptions.setMarginRight(15);
renderOptions.setMarginBottom(15);
renderOptions.setMarginLeft(15);

// Include background colors and images
renderOptions.setPrintHtmlBackgrounds(true);

// Apply options when rendering
PdfDocument report = PdfDocument.renderHtmlAsPdf("<h1>Quarterly Report</h1>", renderOptions);
report.saveAs(Paths.get("report.pdf"));
JAVA

ChromePdfRenderOptions udostępnia ponad 30 ustawień wykraczających poza te pokazane powyżej, w tym DPI, limit czasu wykonywania JavaScript, współczynnik powiększenia oraz typ mediów CSS. Pełną listę można znaleźć w ustawieniach generowania plików PDF. Informacje na temat niestandardowych rozmiarów papieru, których nie ma w wyliczeniu PaperSize, można znaleźć w sekcji niestandardowych rozmiarów papieru w plikach PDF.

WażneZawsze ustawiaj PaperSize przed PaperOrientation. Ustawienie orientacji najpierw może zostać zignorowane, gdy PaperSize jest zastosowany w niektórych kompilacjach. Zalecana kolejność to: rozmiar, potem orientacja, następnie marginesy.

Jak dodać ochronę hasłem do PDF w Java?

SecurityOptions kontroluje hasła do odczytu i hasła właściciela, a także flagi uprawnień. Przed zapisaniem dokumentu należy przekazać SecurityOptions do SecurityManager:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/password-protect-basic.java
// Create security settings with a user-facing password
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setUserPassword("shareable");

// Apply security to the document
PdfDocument urlPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
SecurityManager securityManager = urlPdf.getSecurity();
securityManager.setSecurityOptions(securityOptions);

// Save the password-protected document
urlPdf.saveAs(Paths.get("protected.pdf"));
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/password-protect-basic.java
// Create security settings with a user-facing password
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setUserPassword("shareable");

// Apply security to the document
PdfDocument urlPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
SecurityManager securityManager = urlPdf.getSecurity();
securityManager.setSecurityOptions(securityOptions);

// Save the password-protected document
urlPdf.saveAs(Paths.get("protected.pdf"));
JAVA

Dla ściślejszej kontroli, ustaw hasło właściciela i ogranicz konkretne operacje:

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/password-protect-advanced.java
SecurityOptions advancedSecurity = new SecurityOptions();

// User password: required to open the file
advancedSecurity.setUserPassword("user-open-pass");

// Owner password: required to change security settings
advancedSecurity.setOwnerPassword("owner-admin-pass");

// Restrict editing operations
advancedSecurity.setAllowPrint(false);
advancedSecurity.setAllowCopy(false);
advancedSecurity.setAllowEditContent(false);
advancedSecurity.setAllowEditAnnotations(false);
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/password-protect-advanced.java
SecurityOptions advancedSecurity = new SecurityOptions();

// User password: required to open the file
advancedSecurity.setUserPassword("user-open-pass");

// Owner password: required to change security settings
advancedSecurity.setOwnerPassword("owner-admin-pass");

// Restrict editing operations
advancedSecurity.setAllowPrint(false);
advancedSecurity.setAllowCopy(false);
advancedSecurity.setAllowEditContent(false);
advancedSecurity.setAllowEditAnnotations(false);
JAVA

Otwieranie PDF wyświetla monit, aby wprowadzić hasło:

Password prompt dialog shown when opening an IronPDF-generated Java PDF with a user password set

Czytniki PDF wyświetlają monit o hasło, jeżeli dokument jest zabezpieczony hasłem użytkownika.

Po wprowadzeniu poprawnego hasła PDF otwiera się i wyświetla pełną treść:

IronPDF Java PDF document open in a PDF viewer after the correct password is entered, displaying full document content

Dokument renderuje się normalnie po podaniu poprawnego hasła.

Zobacz ustawienia bezpieczeństwa i metadanych dla pełnej listy flag uprawnień.

Jak generować PDF w aplikacji Spring Boot?

IronPDF integruje się bezpośrednio z Spring Boot. Zwróć PDF jako odpowiedź HTTP w postaci tablicy bajtów z dowolnej metody kontrolera; ten wzorzec działa do generowania raportów na żądanie, pobierania faktur i eksportów danych.

//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/spring-boot-controller.java
import com.ironsoftware.ironpdf.*;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;

@RestController
@RequestMapping("/api/pdf")
public class PdfController {

    @GetMapping("/invoice/{id}")
    public ResponseEntity<byte[]> generateInvoice(@PathVariable String id) throws IOException {
        // Build HTML dynamically using the invoice ID
        String html = """
            <html><body>
              <h1>Invoice #%s</h1>
              <p>Amount due: $500.00</p>
            </body></html>
            """.formatted(id);

        // Render and return as PDF download
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
        byte[] pdfBytes = pdf.getBinaryData();

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_PDF);
        headers.setContentDispositionFormData("attachment", "invoice-" + id + ".pdf");

        return ResponseEntity.ok().headers(headers).body(pdfBytes);
    }
}
//:path=/static-assets/pdf/content-code-examples/how-to/java-create-pdf-tutorial/spring-boot-controller.java
import com.ironsoftware.ironpdf.*;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;

@RestController
@RequestMapping("/api/pdf")
public class PdfController {

    @GetMapping("/invoice/{id}")
    public ResponseEntity<byte[]> generateInvoice(@PathVariable String id) throws IOException {
        // Build HTML dynamically using the invoice ID
        String html = """
            <html><body>
              <h1>Invoice #%s</h1>
              <p>Amount due: $500.00</p>
            </body></html>
            """.formatted(id);

        // Render and return as PDF download
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
        byte[] pdfBytes = pdf.getBinaryData();

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_PDF);
        headers.setContentDispositionFormData("attachment", "invoice-" + id + ".pdf");

        return ResponseEntity.ok().headers(headers).body(pdfBytes);
    }
}
JAVA

Metoda getBinaryData() zwraca plik PDF jako tablicę bajtów, którą Spring Boot przesyła bezpośrednio do klienta. Na dysk nie są zapisywane żadne pliki tymczasowe. W przypadku wdrożeń o dużej przepustowości należy instancjonować License.setLicenseKey() w metodzie @PostConstruct lub w słuchaczu uruchamiania aplikacji, a nie dla każdego żądania.

PoradyUstaw swój klucz licencyjny raz na początku aplikacji za pomocą metody @PostConstruct lub ApplicationRunner. Wywoływanie License.setLicenseKey() przy każdym żądaniu dodaje niepotrzebne obciążenie.

Jakie są następne kroki do tworzenia PDF w Java?

Przewodnik ten pokazał cztery podejścia do generowania PDF w Java przy użyciu IronPDF: renderowanie ciągu HTML, konwersja lokalnego pliku, przechwytywanie URL oraz strumieniowanie odpowiedzi HTTP w Spring Boot. Wszystkie metody korzystają z tego samego interfejsu API PdfDocument, ChromePdfRenderOptions do kontroli formatowania oraz SecurityOptions do ochrony dostępu.

IronPDF for Java obsługuje również dodawanie i nakładanie znaków wodnych, łączenie wielu plików PDF, dzielenie PDF na pojedyncze strony, dodawanie podpisów cyfrowych, renderowanie wykresów JavaScript do PDF oraz drukowanie PDF programowo.

Rozpocznij darmowy okres próbny aby generować PDF bez znaków wodnych lub zobacz opcje licencjonowania, aby wybrać plan pasujący do twojego projektu. Gotowy na więcej? Sprawdź pełną stronę samouczka IronPDF dla Java.

Często Zadawane Pytania

Jak utworzyć PDF z ciągu HTML w Java?

Przekaż swój ciąg HTML do PdfDocument.renderHtmlAsPdf(). Metoda zwraca obiekt PdfDocument w pamięci. Wywołaj pdf.saveAs(Paths.get("output.pdf")), aby zapisać go na dysku. IronPDF obsługuje pełne HTML5, CSS3 i JavaScript.

Jaką wersję Java wymaga IronPDF?

IronPDF for Java wymaga JDK 8 lub wyższej. JDK 11 LTS jest zalecanym minimum dla wdrożeń produkcyjnych.

Jak dodać IronPDF do projektu Maven?

Dodaj blok zależności z groupId com.ironsoftware i artifactId ironpdf wewnątrz sekcji w swoim pliku pom.xml, a następnie uruchom mvn install.

Jak utworzyć PDF z lokalnego pliku HTML w Java?

Wywołaj PdfDocument.renderHtmlFileAsPdf() z ścieżką do swojego pliku HTML. IronPDF automatycznie rozwiązuje wszystkie powiązane CSS, obrazy i JavaScript względem katalogu pliku.

Czy mogę utworzyć PDF z adresu URL w Java?

Tak. Wywołaj PdfDocument.renderUrlAsPdf() z docelowym adresem URL. IronPDF pobiera stronę używając Chromium i zwraca PdfDocument. W przypadku stron za tożsamością HTTP, przekaż dane uwierzytelniające przez ChromePdfRenderOptions.

Jak chronić PDF hasłem w Java za pomocą IronPDF?

Utwórz obiekt SecurityOptions, wywołaj setUserPassword() z hasłem, a następnie przekaż opcje do urlPdf.getSecurity().setSecurityOptions() przed wywołaniem saveAs().

Jak używać IronPDF w aplikacji Spring Boot?

Wstrzykuj logikę generowania PDF do metody @RestController. Wywołaj PdfDocument.renderHtmlAsPdf(), a następnie użyj pdf.getBinaryData(), aby uzyskać tablicę bajtów i zwrócić ją jako ResponseEntity z MediaType.APPLICATION_PDF.

Jak ustawić rozmiar i orientację strony w IronPDF for Java?

Utwórz obiekt ChromePdfRenderOptions, wywołaj setPaperSize() i setPaperOrientation(), następnie przekaż go jako drugi argument do dowolnej metody renderowania. Ustaw najpierw rozmiar papieru przed orientacją, aby uniknąć konfliktów kolejności.

Czy IronPDF działa na Linux i macOS dla Java?

Tak. IronPDF for Java działa na Windows, Linux i macOS. Wspiera także wdrożenia w chmurze na AWS, Azure i Google Cloud, bez potrzeby zewnętrznego przeglądarki PDF lub silnika renderowania.

Czy pliki PDF będą mieć znak wodny bez klucza licencyjnego?

Tak. Bez ważnego klucza licencyjnego IronPDF dodaje próbny znak wodny do wszystkich wygenerowanych dokumentów. Wywołaj License.setLicenseKey() z ważnym kluczem przy uruchomieniu aplikacji, aby go usunąć.

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

Czytaj więcej
Gotowy, aby rozpocząć?
Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu?
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.