Jak przekonwertować HTML na PDF za pomocą IronPDF for Java

HTML do PDF w Java

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

IronPDF for Java konwertuje treść HTML na dokumenty PDF uruchamiając pełny silnik renderowania Chromium — ten sam silnik, który zasila nowoczesne przeglądarki. Każda właściwość CSS, czcionka, obraz i układ generowany przez JavaScript jest renderowany dokładnie tak, jak byłby w oknie przeglądarki, a następnie ląduje na stronie jako precyzyjny pikselowo PDF.

Ten samouczek przeprowadza przez trzy podstawowe metody konwersji: HTML string do PDF, live URL do PDF i lokalny plik HTML do PDF. Obejmuje również instalację, konfigurację licencji i opcje renderowania, po które programiści sięgają najczęściej.

Biblioteka Java odzwierciedla kształt API IronPDF for .NET, więc zespoły pracujące w obu środowiskach uznają przejście za proste. Kod źródłowy dla wszystkich przykładów w tym samouczku jest dostępny na GitHub.

Szybki start: Konwersja HTML do PDF w Javie

Dodaj IronPDF do swojego Maven pom.xml, a następnie wywołaj jedną metodę, aby wygenerować plik PDF:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/quickstart.java
import com.ironsoftware.ironpdf.*;

// Set your license key before any rendering calls
License.setLicenseKey("YOUR-LICENSE-KEY");

// Convert an HTML string to a PDF and save it
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF for Java!</h1>");
pdf.saveAs("output.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/quickstart.java
import com.ironsoftware.ironpdf.*;

// Set your license key before any rendering calls
License.setLicenseKey("YOUR-LICENSE-KEY");

// Convert an HTML string to a PDF and save it
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF for Java!</h1>");
pdf.saveAs("output.pdf");
JAVA

Rozpocznij używanie IronPDF w swoim projekcie już dziś dzięki darmowej wersji próbnej.

Pierwszy krok:
green arrow pointer

Spis treści


Instalacja IronPDF for Java

IronPDF for Java jest dostarczany przez Maven Central oraz jako samodzielny JAR. Trasa Maven jest zalecana dla większości projektów, ponieważ obsługuje zależności przechodnie i utrzymuje zgodność wersji biblioteki między komputerami programistycznymi i potokami CI.

Opcja 1: Dodaj IronPDF jako zależność Maven

Otwórz plik pom.xml projektu i dodaj następujące wpisy do bloku <dependencies>:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/maven-dependency.xml
<dependencies>

    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf</artifactId>
        <version>[LATEST_VERSION]</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>[LATEST_VERSION]</version>
    </dependency>
</dependencies>
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/maven-dependency.xml
<dependencies>

    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf</artifactId>
        <version>[LATEST_VERSION]</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>[LATEST_VERSION]</version>
    </dependency>
</dependencies>
XML

Pierwszy artefakt pobiera najświeższe wydanie IronPDF for Java. Drugi artefakt aktywuje logowanie SLF4J, aby silnik renderowania IronPDF mógł zapisywać wiadomości diagnostyczne podczas wykonywania. Programiści, którzy preferują Logback lub Log4J, mogą zamiast tego zastąpić tego dostawcę. Zależność logowania jest opcjonalna — pomiń ją, jeśli logi nie są potrzebne.

Po zapisaniu pliku uruchom mvn install z katalogu głównego projektu, aby pobrać obie biblioteki. Maven automatycznie rozwiązuje pełen graf zależności, w tym wszelkie przechodnie zależności, które wymaga IronPDF.

W przypadku projektów Gradle odpowiednikiem deklaracji zależności w build.gradle jest:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/gradle-dependency.java
// build.gradle (Groovy DSL)
// dependencies {
//     implementation 'com.ironsoftware:ironpdf:[LATEST_VERSION]'
//     implementation 'org.slf4j:slf4j-simple:[LATEST_VERSION]'
// }
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/gradle-dependency.java
// build.gradle (Groovy DSL)
// dependencies {
//     implementation 'com.ironsoftware:ironpdf:[LATEST_VERSION]'
//     implementation 'org.slf4j:slf4j-simple:[LATEST_VERSION]'
// }
JAVA

Zastąp [LATEST_VERSION] numerem wersji z dziennika zmian IronPDF lub ze strony Maven Central dla danego artefaktu.

Opcja 2: Dodaj plik JAR ręcznie

Pobierz bezpośrednio JAR IronPDF z Maven Central i dodaj go do ścieżki klasy projektu. To podejście działa bez narzędzia do budowy, ale wymaga ręcznego zarządzania wersjami, więc najlepiej nadaje się do projektów odziedziczonek, które nie używają Maven ani Gradle, lub dla środowisk, gdzie dostęp do sieci zewnętrznej jest ograniczony.

Po pobraniu dodaj JAR do ścieżki klasy projektu przez ustawienia projektu w IDE. W IntelliJ IDEA kliknij prawym przyciskiem myszy korzeń projektu, wybierz "Open Module Settings", przejdź do "Dependencies" i dodaj plik JAR. W Eclipse kliknij prawym przyciskiem myszy projekt, idź do "Properties > Java Build Path > Libraries", a następnie kliknij "Add External JARs".

Zwróć uwagęJAR IronPDF zawiera w sobie binarkę silnika Chromium. Pierwsze wywołanie renderowania na nowej maszynie wyeksploruje ją do katalogu tymczasowego, co zajmuje kilka sekund. Kolejne wywołania używają zbuforowanej binarki i uruchamiają się natychmiastowo. W środowiskach kontenerowych, zamontuj trwały wolumin w ścieżce ekstrakcji, aby uniknąć ponownej ekstrakcji przy każdym uruchomieniu kontenera.

Wymagania systemowe

IronPDF for Java działa na JDK 8 lub późniejszych. Obsługuje Windows, Linux i macOS na architekturach zarówno x86-64, jak i ARM64. Nie jest wymagana instalacja zewnętrznej przeglądarki — binarka Chromium jest wbudowana w JAR. Na systemach Linux upewnij się, że standardowe biblioteki współdzielone oczekiwane przez Chromium są obecne. Dokumentacja IronPDF for Java wymienia minimalnie wymagane pakiety dla popularnych dystrybucji Linux.


Jak zaimportować IronPDF i skonfigurować klucz licencyjny?

Każda klasa IronPDF znajduje się w pakiecie com.ironsoftware.ironpdf. Zaimportuj ją na górze dowolnego pliku źródłowego, który będzie tworzył lub manipulował dokumentami PDF.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/import-and-license.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Apply your license key before any other IronPDF calls
License.setLicenseKey("YOUR-LICENSE-KEY");

// Optional: set a custom log file path
Settings.setLogPath(Paths.get("IronPdfEngine.log"));
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/import-and-license.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Apply your license key before any other IronPDF calls
License.setLicenseKey("YOUR-LICENSE-KEY");

// Optional: set a custom log file path
Settings.setLogPath(Paths.get("IronPdfEngine.log"));
JAVA

Bez klucza licencyjnego IronPDF działa w trybie testowym i umieszcza na każdej stronie PDF znak wodny kafelkowany. Ustawienie klucza usuwa znak wodny i odblokowuje wszystkie funkcje. Rozpocznij bezpłatny okres próbny, aby natychmiast uzyskać klucz.

Znak wodny trybu próbnego IronPDF umieszczony na wyrenderowanej stronie PDF

Klucz licencyjny jest ciągiem znaków, który Iron Software wydaje, gdy aktywowana jest licencja testowa lub komercyjna. Przechowuj go w zmiennej środowiskowej lub pliku konfiguracyjnym zamiast osadzać bezpośrednio w kodzie źródłowym. Popularnym wzorcem jest odczytanie go z zmiennej środowiskowej przy starcie:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/license-from-env.java
import com.ironsoftware.ironpdf.*;

// Read the license key from an environment variable
String licenseKey = System.getenv("IRONPDF_LICENSE_KEY");
if (licenseKey != null && !licenseKey.isEmpty()) {
    License.setLicenseKey(licenseKey);
}
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/license-from-env.java
import com.ironsoftware.ironpdf.*;

// Read the license key from an environment variable
String licenseKey = System.getenv("IRONPDF_LICENSE_KEY");
if (licenseKey != null && !licenseKey.isEmpty()) {
    License.setLicenseKey(licenseKey);
}
JAVA

To podejście chroni klucz przed kontrolą wersji i ułatwia używanie różnych kluczy w różnych środowiskach: rozwojowym, staging i produkcyjnym.

WażneLicense.setLicenseKey i Settings.setLogPath muszą zostać wywołane przed każdą metodą renderowania lub manipulacji. Umieść je przy uruchomieniu aplikacji — najlepiej w statycznym bloku inicjalizującym lub w punkcie wejścia main.


Jak przekonwertować ciąg HTML na PDF?

PdfDocument.renderHtmlAsPdf przyjmuje ciąg znaków w formacie HTML i zwraca obiekt PdfDocument, który można zapisać, scalić lub zmodyfikować przed zapisaniem na dysku. To główna metoda dla programowo generowanego HTML — na przykład raporty budowane przez łączenie wartości z bazy danych z szablonem HTML zdefiniowanym jako ciąg znaków w Java lub załadowanym z pliku.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Simple one-liner: convert an HTML string to a PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
pdf.saveAs("htmlstring_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Simple one-liner: convert an HTML string to a PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
pdf.saveAs("htmlstring_to_pdf.pdf");
JAVA

Silnik renderowania rozwiązuje względne ścieżki zasobów (obrazy, arkusze stylów, skrypty) względem opcjonalnego drugiego argumentu — ścieżki bazowej. Gdy podana jest ścieżka bazowa, silnik traktuje ją jako korzeń, z którego rozwiązywane są względne URL-e. To pozwala na poprawne renderowanie HTML, który odwołuje się do lokalnych plików CSS i obrazów, bez żadnych manipulacji ścieżkami w źródłowym markerze.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-with-assets.java
import com.ironsoftware.ironpdf.*;

// HTML references assets in a local "assets" subfolder
String html = "<html>" +
    "<head><link rel='stylesheet' href='assets/style.css'></head>" +
    "<body><h1>Invoice</h1><img src='assets/logo.png' /></body>" +
    "</html>";

// Pass the base path so IronPDF resolves relative asset URLs
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/my-project/templates");
pdf.saveAs("invoice.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-string-with-assets.java
import com.ironsoftware.ironpdf.*;

// HTML references assets in a local "assets" subfolder
String html = "<html>" +
    "<head><link rel='stylesheet' href='assets/style.css'></head>" +
    "<body><h1>Invoice</h1><img src='assets/logo.png' /></body>" +
    "</html>";

// Pass the base path so IronPDF resolves relative asset URLs
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/my-project/templates");
pdf.saveAs("invoice.pdf");
JAVA

Metoda saveAs akceptuje ścieżkę bezwzględną lub względną. Biblioteka tworzy plik, jeśli jeszcze nie istnieje i nadpisuje go, jeśli istnieje. Podczas zapisywania w katalogu, który aplikacja mogła jeszcze nie utworzyć, należy najpierw utworzyć katalog za pomocą Files.createDirectories(Paths.get("output")) przed wywołaniem saveAs.

IronPDF obsługuje pełen zestaw funkcji HTML5 i CSS3, jak zaimplementowano w Chromium. Czcionki niestandardowe ładowane za pomocą @font-face w CSS wyświetlają się poprawnie, gdy pliki czcionek są dostępne w ścieżce bazowej. Elementy SVG i elementy <canvas> renderowane przez JavaScript również pojawiają się w pliku PDF.

PoradyPrzechowuj szablony HTML w dedykowanym katalogu i przekaż ten katalog jako ścieżkę bazową. Ten wzorzec pozwala projektantom aktualizować szablon bez dotykania jakiegokolwiek kodu w Java.


Jak przekonwertować URL na PDF w Java?

PdfDocument.renderUrlAsPdf pobiera stronę pod podanym adresem URL, czeka na wykonanie kodu JavaScript i załadowanie treści dynamicznej, a następnie konwertuje w pełni wyrenderowany DOM do formatu PDF.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/url-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Convert a live web page to PDF
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("wikipedia_pdf_article.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/url-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Convert a live web page to PDF
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("wikipedia_pdf_article.pdf");
JAVA

Silnik obsługuje nagłówki autoryzacji, ciasteczka i aplikacje jednostronicowe bogate w JavaScript. W przypadku stron wymagających logowania lub niestandardowych nagłówków żądania należy użyć klasy ChromePdfRenderOptions do skonfigurowania parametrów żądania przed wywołaniem renderUrlAsPdf.

Ta metoda konwersji jest przydatna do archiwizacji stron internetowych, generowania migawki zgodności i produkcji raportów dla klientów z wewnętrznych pulpitów. Strony generowane przez serwer, do których dostęp odbywa się za pośrednictwem sieci lokalnej, są w pełni obsługiwane — należy przekazać http://localhost:8080/report/123 w taki sam sposób, jak publiczny adres URL. IronPDF będzie czekać na pełne załadowanie strony przed renderowaniem, więc pulpity bazujące na asynchronicznych pobraniach danych zostaną wyrenderowane z wypełnionymi danymi zamiast z pustymi wykresami.

W przypadku stron chronionych podstawowym uwierzytelnianiem HTTP należy przekazać dane uwierzytelniające w adresie URL, używając formatu http://user:password@host/path. W przypadku stron chronionych plikami cookie sesji należy skonfigurować zbiornik plików cookie w obiekcie ChromePdfRenderOptions przed przekazaniem go do renderUrlAsPdf. Zobacz dokumentację IronPDF for Java dla szczegółów dotyczących konfigurowania nagłówków żądań i zarządzania ciasteczkami dla uwierzytelnionych URL.


Jak przekonwertować lokalny plik HTML na PDF?

PdfDocument.renderHtmlFileAsPdf odczytuje plik HTML z lokalnego systemu plików i renderuje go do formatu PDF. Wszystkie powiązane zasoby (CSS, JavaScript, obrazy) odwoływane przez względne ścieżki w pliku są rozwiązywane względem katalogu własnego pliku HTML.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-file-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Convert a local HTML file — assets resolve relative to its directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/html-file-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Convert a local HTML file — assets resolve relative to its directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
JAVA

To podejście jest najbardziej dokładne do konwersji złożonych dokumentów HTML. Ponieważ silnik renderowania operuje na ścieżce systemu plików, a nie na ciągu w pamięci, względne odwołania do wielopoziomowych katalogów zasobów rozwiązują się bez dodatkowej konfiguracji. Szablon oparty na plikach style.css i script.js w tym samym folderze zostanie poprawnie wyrenderowany bez konieczności dostosowywania ścieżki.

Ta metoda jest szczególnie dobrze dostosowana do generowania faktur, produkcji umów i każdego przepływu pracy, gdzie projektant utrzymuje szablon HTML niezależnie od aplikacji Java. Zespół programistów traktuje szablon jako plik danych, przechowuje go wraz z aplikacją i wywołuje renderHtmlFileAsPdf z podaniem ścieżki. Gdy projektant zaktualizuje szablon, zmieniając branding lub układ, nie są wymagane żadne zmiany w kodzie Java.

Zwróć uwagęIronPDF obsługuje wszystkie nowoczesne funkcje HTML i CSS, które obsługuje Chromium — Flexbox, CSS Grid, zmienne CSS, Web fonts i zapytania medialne są poprawnie renderowane w wyjściowym PDF.


Jak ustawić opcje generowania PDF?

ChromePdfRenderOptions kontroluje zachowanie renderowania: rozmiar papieru, marginesy, poziom powiększenia, typ nośnika drukarskiego, limit czasu JavaScript i inne. Utwórz instancję, skonfiguruj żądane właściwości i przekaż ją jako drugi argument do dowolnej metody render*AsPdf.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;

ChromePdfRenderOptions options = new ChromePdfRenderOptions();

// Render the page using the print media type (uses @media print CSS rules)
options.setCssMediaType(CssMediaType.PRINT);

// Wait up to 5 seconds for JavaScript to finish executing
options.setJavaScriptTimeout(5000);

// Apply a 1.5x zoom level to scale content to fit the page
options.setZoom(150);

// Render at 150 DPI for sharper images in print output
options.setDpi(150);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Styled Report</h1>",
    options
);
pdf.saveAs("styled_report.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/render-options.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;

ChromePdfRenderOptions options = new ChromePdfRenderOptions();

// Render the page using the print media type (uses @media print CSS rules)
options.setCssMediaType(CssMediaType.PRINT);

// Wait up to 5 seconds for JavaScript to finish executing
options.setJavaScriptTimeout(5000);

// Apply a 1.5x zoom level to scale content to fit the page
options.setZoom(150);

// Render at 150 DPI for sharper images in print output
options.setDpi(150);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Styled Report</h1>",
    options
);
pdf.saveAs("styled_report.pdf");
JAVA

Ustawienie CssMediaType.PRINT nakazuje silnikowi zastosowanie reguł CSS @media print, których wiele szablonów HTML używa do ukrywania pasków nawigacyjnych i stosowania układów przeznaczonych do drukowania. Metoda setJavaScriptTimeout jest ważna w przypadku stron korzystających z bibliotek do tworzenia wykresów w JavaScript (D3.js, Chart.js) lub treści ładowanych z opóźnieniem — jeśli limit czasu jest zbyt krótki, plik PDF zostanie zapisany przed zakończeniem renderowania przez JavaScript, co spowoduje wyświetlenie pustych wykresów lub brakujących sekcji. Zwiększ limit czasu, jeśli renderowany PDF nie zawiera oczekiwanych treści.

Metoda setDpi kontroluje rozdzielczość obrazu w wyniku. Domyślnie (96 DPI) jest odpowiednie dla dokumentów ekranowych. Dla PDF-ów, które będą drukowane lub wyświetlane na ekranach o dużej gęstości DPI, użyj 150 lub 300 DPI. Wyższe wartości DPI zwiększają rozmiar pliku proporcjonalnie. Zobacz przykład kodu z ustawieniami generowania PDF, aby uzyskać pełną listę konfigurowalnych właściwości.


Jak dodać nagłówki i stopki?

IronPDF obsługuje zarówno oparte na tekście, jak i oparte na HTML nagłówki i stopki. Nagłówki tekstowe wykorzystują obiekt TextHeaderFooter z tokenami formatującymi ({page}, {total-pages}, {date}), które są automatycznie rozpoznawane w momencie renderowania.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;

// Create a text-based header and footer
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Confidential — {date}");
header.setFontSize(10);

TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("My Company, Inc.");
footer.setRightText("Page {page} of {total-pages}");
footer.setFontSize(9);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1>");
pdf.addTextHeaders(header);
pdf.addTextFooters(footer);
pdf.saveAs("report_with_headers.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/headers-footers.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;

// Create a text-based header and footer
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Confidential — {date}");
header.setFontSize(10);

TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("My Company, Inc.");
footer.setRightText("Page {page} of {total-pages}");
footer.setFontSize(9);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1>");
pdf.addTextHeaders(header);
pdf.addTextFooters(footer);
pdf.saveAs("report_with_headers.pdf");
JAVA

Tokeny {page} i {total-pages} generują wartości takie jak "3 z 12" w stopce i aktualizują się automatycznie wraz ze zmianą liczby stron, więc nie ma potrzeby znajomości ostatecznej liczby stron przed renderowaniem. Token {date} wstawia bieżącą datę zgodnie z ustawieniami regionalnymi systemu. Inne dostępne tokeny to {time}, {document-title} oraz {url}.

Nagłówki i stopki dodane za pomocą addTextHeaders i addTextFooters domyślnie mają zastosowanie do każdej strony w dokumencie. Przekaż opcjonalny parametr zakresu stron, aby ograniczyć je do określonych stron — na przykład, aby pominąć nagłówek na stronie tytułowej.

W przypadku stylizowanych nagłówków, które wymagają logo, kolorów marki lub niestandardowych układów, należy zamiast tego użyć HtmlHeaderFooter — akceptuje on pełny ciąg HTML i renderuje go w taki sam sposób, jak treść strony. Zobacz przykład niestandardowych nagłówków i stopek dla pełnego wzorca nagłówka HTML.


Jak ustawić marginesy strony i rozmiar papieru?

Przed wywołaniem dowolnej metody render*AsPdf należy przekazać instancję ChromePdfRenderOptions z skonfigurowanymi wartościami marginesów i rozmiaru papieru.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/margins-paper-size.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;

ChromePdfRenderOptions options = new ChromePdfRenderOptions();

// Set uniform margins in millimeters
options.setMarginTop(20);
options.setMarginBottom(20);
options.setMarginLeft(15);
options.setMarginRight(15);

// Use A4 paper (default is Letter)
options.setPaperSize(PaperSize.A4);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<p>Page content here.</p>", options);
pdf.saveAs("a4_with_margins.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/margins-paper-size.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;

ChromePdfRenderOptions options = new ChromePdfRenderOptions();

// Set uniform margins in millimeters
options.setMarginTop(20);
options.setMarginBottom(20);
options.setMarginLeft(15);
options.setMarginRight(15);

// Use A4 paper (default is Letter)
options.setPaperSize(PaperSize.A4);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<p>Page content here.</p>", options);
pdf.saveAs("a4_with_margins.pdf");
JAVA

Wartości marginesu są podane w milimetrach. Wyliczenie PaperSize obejmuje standardowe rozmiary (A4, Letter, Legal, A3 i inne). Programiści, którzy potrzebują niestandardowych wymiarów, mogą ustawić własną szerokość i wysokość za pomocą options.setCustomPaperWidth i options.setCustomPaperHeight. Przykład niestandardowego rozmiaru papieru i przykład niestandardowych marginesów pokazują pełne wzorce konfiguracji.


Jak nałożyć znak wodny na PDF?

Znak wodny w IronPDF to HTML nadrukowany na każdej stronie przy konfigurowalnej przezroczystości. To podejście daje deweloperom pełną kontrolę nad wyglądem znaku wodnego — każdy element HTML, obraz czy stylizowany tekst może służyć jako pieczątka.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/watermark.java
import com.ironsoftware.ironpdf.*;

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Report</h1><p>Internal use only.</p>");

// Define the watermark using an HTML string
String watermarkHtml = "<h1 style='color:rgba(200,0,0,0.3); transform:rotate(-45deg);'>DRAFT</h1>";

// Stamp the watermark on all pages at 50% opacity
pdf.applyStamp(watermarkHtml);

pdf.saveAs("draft_watermark.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/watermark.java
import com.ironsoftware.ironpdf.*;

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Report</h1><p>Internal use only.</p>");

// Define the watermark using an HTML string
String watermarkHtml = "<h1 style='color:rgba(200,0,0,0.3); transform:rotate(-45deg);'>DRAFT</h1>";

// Stamp the watermark on all pages at 50% opacity
pdf.applyStamp(watermarkHtml);

pdf.saveAs("draft_watermark.pdf");
JAVA

Metoda applyStamp akceptuje parametr HtmlStampOptions do precyzyjnego pozycjonowania — wyśrodkowanie, lewy górny róg, niestandardowe przesunięcia pikselowe oraz z-index (pierwszy plan lub tło). Umieszczenie pieczątki jako tła powoduje, że znajduje się za tekstem, dzięki czemu dokument pozostaje czytelny. Ustawienie jej jako pierwszego planu umieszcza ją na wierzchu, co jest trudniejsze do ukrycia podczas drukowania.

PoradyAby uzyskać znak wodny w postaci powtarzającego się kafelka — taki, jaki IronPDF sam aplikuje w trybie próbnym — wygeneruj siatkę obróconych elementów tekstowych w ciągu pieczątki HTML i ustaw element tak, aby wypełniał całą stronę.

Zobacz poradnik o niestandardowych znakach wodnych z przykładami obejmującymi tła wodne, wzory kafelkowe i usuwanie znaków wodnych przez uaktualnienie licencji.


Jak połączyć wiele plików PDF w jeden?

PdfDocument.merge łączy dwa lub więcej obiektów PdfDocument w kolejności i zwraca jeden nowy dokument. Jest to preferowane podejście do składania raportów z sekcji składowych, dodawania okładek lub łączenia sekcji używanych przez użytkowników w pracy masowej.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/merge-pdfs.java
import com.ironsoftware.ironpdf.*;
import java.util.Arrays;
import java.util.List;

// Render two separate HTML documents into PDFs
PdfDocument cover    = PdfDocument.renderHtmlAsPdf("<h1>Cover Page</h1>");
PdfDocument body     = PdfDocument.renderHtmlAsPdf("<h1>Report Body</h1><p>Section one...</p>");
PdfDocument appendix = PdfDocument.renderHtmlAsPdf("<h2>Appendix A</h2>");

// Merge all three into a single PDF in the specified order
List<PdfDocument> parts = Arrays.asList(cover, body, appendix);
PdfDocument merged = PdfDocument.merge(parts);
merged.saveAs("full_report.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/merge-pdfs.java
import com.ironsoftware.ironpdf.*;
import java.util.Arrays;
import java.util.List;

// Render two separate HTML documents into PDFs
PdfDocument cover    = PdfDocument.renderHtmlAsPdf("<h1>Cover Page</h1>");
PdfDocument body     = PdfDocument.renderHtmlAsPdf("<h1>Report Body</h1><p>Section one...</p>");
PdfDocument appendix = PdfDocument.renderHtmlAsPdf("<h2>Appendix A</h2>");

// Merge all three into a single PDF in the specified order
List<PdfDocument> parts = Arrays.asList(cover, body, appendix);
PdfDocument merged = PdfDocument.merge(parts);
merged.saveAs("full_report.pdf");
JAVA

Strony z każdego dokumentu źródłowego pojawiają się w wyniku połączenia w kolejności określonej przez listę źródeł. Połączony dokument nie dziedziczy żadnych metadanych z żadnego z poszczególnych źródeł — po połączeniu należy zaktualizować meta.title i inne właściwości dokumentu za pomocą PdfDocument.getPdfMetaData(), jeśli pola te mają znaczenie dla dalszego odbiorcy.

Metoda merge posiada również przeciążenie z dwoma argumentami, które akceptuje dokładnie dwie instancje PdfDocument. Dla masowych połączeń wielu dokumentów, użyj przeciążenia listy — jest bardziej wydajne niż łączenie wielu wywołań z dwoma argumentami, ponieważ przetwarza wszystkie źródła w jednym przejściu.

Zwróć uwagęKażdy element źródłowy PdfDocument na liście scalania pozostaje ważny i niezmieniony po wywołaniu. Instancja merged jest nowym, niezależnym dokumentem. Uwolnij dokumenty źródłowe za pomocą metody close(), gdy nie są już potrzebne, aby zwolnić powiązane zasoby natywne.


Jak dodać lub usunąć strony z PDF?

Poszczególne strony można skopiować z jednego dokumentu do drugiego lub całkowicie usunąć, używając metod PdfDocument.copyPage, PdfDocument.copyPages i PdfDocument.removePages.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/page-operations.java
import com.ironsoftware.ironpdf.*;
import java.util.Arrays;

// Generate a multi-page document using CSS page breaks
PdfDocument report = PdfDocument.renderHtmlAsPdf(
    "<p>Page 1 content</p>" +
    "<div style='page-break-after:always;'></div>" +
    "<p>Page 2 content</p>" +
    "<div style='page-break-after:always;'></div>" +
    "<p>Page 3 content</p>"
);

// Remove page 2 (zero-indexed — page index 1)
report.removePages(Arrays.asList(1));

// Save the two-page result
report.saveAs("two_page_report.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/page-operations.java
import com.ironsoftware.ironpdf.*;
import java.util.Arrays;

// Generate a multi-page document using CSS page breaks
PdfDocument report = PdfDocument.renderHtmlAsPdf(
    "<p>Page 1 content</p>" +
    "<div style='page-break-after:always;'></div>" +
    "<p>Page 2 content</p>" +
    "<div style='page-break-after:always;'></div>" +
    "<p>Page 3 content</p>"
);

// Remove page 2 (zero-indexed — page index 1)
report.removePages(Arrays.asList(1));

// Save the two-page result
report.saveAs("two_page_report.pdf");
JAVA

Indeksy stron w IronPDF są oparte na zerze. Podczas usuwania wielu stron należy przekazać wszystkie indeksy w jednym wywołaniu removePages zamiast wywoływać je wielokrotnie w pętli, ponieważ każde usunięcie powoduje przesunięcie indeksów kolejnych stron. Przekazanie pełnej listy naraz unika przesunięcia indeksów. Na przykład, aby usunąć strony 2 i 4 z pięciostronicowego dokumentu, należy przekazać Arrays.asList(1, 3) — a nie dwa oddzielne wywołania.

Aby wstawić strony z zewnętrznego pliku PDF — na przykład dołączając informację prawną ze statycznego szablonu — użyj PdfDocument.insertPdf, aby wstawić dokument zewnętrzny w określonym miejscu. Liczba stron dokumentu odbiorczego aktualizuje się natychmiast po wstawieniu.

Właściwość CSS css page-break-after:always jest standardowym sposobem wymuszania podziałów stron w HTML, które zostaną wyrenderowane do formatu PDF. IronPDF obsługuje również nowszą właściwość CSS break-after: page. Oba podejścia zapewniają przewidywalne podziały stron bez potrzeby stosowania specjalnego kodu Java.


Jak zabezpieczyć hasłem PDF w Java?

IronPDF obsługuje dwa różne hasła na PDF: hasło właściciela, które kontroluje uprawnienia do edycji, drukowania i kopiowania oraz hasło użytkownika, które kontroluje otwieranie dokumentu. Oba są ustawiane za pomocą klasy SecurityOptions.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/password-protect.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.security.*;

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Secure Document</h1>");

SecurityOptions security = new SecurityOptions();

// Require a password to open the document
security.setUserPassword("user123");

// Require a separate password to edit, print, or copy content
security.setOwnerPassword("owner456");

// Restrict printing to prevent unauthorized reproduction
security.setAllowUserPrinting(PrintOptions.FullPrintQuality);

PdfSecurityManager securityManager = new PdfSecurityManager(pdf);
securityManager.setSecurityOptions(security);

pdf.saveAs("secure_document.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/password-protect.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.security.*;

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Secure Document</h1>");

SecurityOptions security = new SecurityOptions();

// Require a password to open the document
security.setUserPassword("user123");

// Require a separate password to edit, print, or copy content
security.setOwnerPassword("owner456");

// Restrict printing to prevent unauthorized reproduction
security.setAllowUserPrinting(PrintOptions.FullPrintQuality);

PdfSecurityManager securityManager = new PdfSecurityManager(pdf);
securityManager.setSecurityOptions(security);

pdf.saveAs("secure_document.pdf");
JAVA

Ustawienie AllowUserPrinting akceptuje wyliczenie PrintOptions: FullPrintQuality, LowQualityPrint lub NoPrint. Gdy ustawione jest hasło właściciela, ale hasło użytkownika jest puste, dokument otwiera się bez hasła, ale edycja i inne operacje wymagają hasła właściciela w edytorze PDF.

OstrzeżenieZabezpieczenie hasłem PDF szyfruje plik, ale nie zastępuje prawidłowych systemów kontroli dostępu. Zdeterminowani użytkownicy z wyspecjalizowanymi narzędziami mogą próbować ataków siłowych na słabe hasła. Używaj silnych, losowo generowanych haseł w dokumentach, które wymagają rzeczywistego zabezpieczenia.


Jak przekształcić szablon HTML z dynamicznymi danymi?

Generowanie PDF-ów z szablonu HTML napędzanego danymi jest jednym z najczęstszych przypadków użycia produkcji dla IronPDF. Standardowym podejściem jest zbudowanie ciągu HTML w Javie przy użyciu biblioteki szablonów lub operacji na ciągach znaków, a następnie przekazanie gotowego ciągu do renderHtmlAsPdf.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/dynamic-template.java
import com.ironsoftware.ironpdf.*;

// Simulate data from a database or service layer
String customerName  = "Acme Corp";
String invoiceNumber = "INV-20240501";
String totalAmount   = "$1,250.00";
String dueDate       = "2024-06-01";

// Build the HTML template with real data injected
String html = "<!DOCTYPE html><html><head>" +
    "<style>body{font-family:Arial,sans-serif;margin:40px;}" +
    "table{width:100%;border-collapse:collapse;}" +
    "th,td{border:1px solid #ccc;padding:8px;text-align:left;}" +
    "th{background:#f4f4f4;}</style></head><body>" +
    "<h1>Invoice</h1>" +
    "<p><strong>Customer:</strong> " + customerName + "</p>" +
    "<p><strong>Invoice #:</strong> " + invoiceNumber + "</p>" +
    "<table><tr><th>Description</th><th>Amount</th></tr>" +
    "<tr><td>Professional Services</td><td>" + totalAmount + "</td></tr>" +
    "</table>" +
    "<p><strong>Due Date:</strong> " + dueDate + "</p>" +
    "</body></html>";

PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
pdf.saveAs(invoiceNumber + ".pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/dynamic-template.java
import com.ironsoftware.ironpdf.*;

// Simulate data from a database or service layer
String customerName  = "Acme Corp";
String invoiceNumber = "INV-20240501";
String totalAmount   = "$1,250.00";
String dueDate       = "2024-06-01";

// Build the HTML template with real data injected
String html = "<!DOCTYPE html><html><head>" +
    "<style>body{font-family:Arial,sans-serif;margin:40px;}" +
    "table{width:100%;border-collapse:collapse;}" +
    "th,td{border:1px solid #ccc;padding:8px;text-align:left;}" +
    "th{background:#f4f4f4;}</style></head><body>" +
    "<h1>Invoice</h1>" +
    "<p><strong>Customer:</strong> " + customerName + "</p>" +
    "<p><strong>Invoice #:</strong> " + invoiceNumber + "</p>" +
    "<table><tr><th>Description</th><th>Amount</th></tr>" +
    "<tr><td>Professional Services</td><td>" + totalAmount + "</td></tr>" +
    "</table>" +
    "<p><strong>Due Date:</strong> " + dueDate + "</p>" +
    "</body></html>";

PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
pdf.saveAs(invoiceNumber + ".pdf");
JAVA

W przypadku większych projektów rozważ użycie biblioteki szablonów Java, takiej jak Thymeleaf lub Freemarker, aby zarządzać szablonami HTML jako oddzielnymi plikami, wprowadzać dane za pomocą obiektu kontekstu i utrzymać czystość składni szablonu w porównaniu do łączenia ciągów. Obie biblioteki generują zwykły ciąg HTML, który jest przekazywany bezpośrednio do renderHtmlAsPdf.

PoradyPodczas generowania plików PDF w zadaniu wsadowym — na przykład jednej faktury na klienta — należy utworzyć instancję ChromePdfRenderOptions raz przed pętlą i ponownie wykorzystać tę samą instancję dla każdego wywołania renderowania. Tworzenie nowego obiektu opcji na wywołanie dodaje niepotrzebny narzut związany z alokacją obiektu.


Jak wyodrębnić tekst z PDF w Javie?

PdfDocument.extractAllText odczytuje całą treść tekstową ze wszystkich stron pliku PDF i zwraca ją jako pojedynczy ciąg znaków. To jest przydatne do indeksowania wyszukiwania, ekstrakcji danych i weryfikacji zawartości po renderowaniu.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/extract-text.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Open an existing PDF (or use the result of a render call)
PdfDocument pdf = PdfDocument.fromFile(Paths.get("output.pdf"));

// Extract all text content as a plain string
String text = pdf.extractAllText();
System.out.println(text);
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/extract-text.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Open an existing PDF (or use the result of a render call)
PdfDocument pdf = PdfDocument.fromFile(Paths.get("output.pdf"));

// Extract all text content as a plain string
String text = pdf.extractAllText();
System.out.println(text);
JAVA

Zwrócony ciąg zachowuje kolejność odczytu tekstu na każdej stronie, ale nie zawiera formatowania. Spacje między kolumnami a komórkami tabel są reprezentowane jako spacje. W przypadku plików PDF zawierających wiele sekcji logicznych, extractTextFromPage(int pageIndex) izoluje tekst z pojedynczej strony, co jest bardziej wydajne podczas przetwarzania dużych dokumentów strona po stronie.

Wyodrębnianie tekstu działa tylko w plikach PDF, w których tekst jest przechowywany jako rzeczywiste obiekty tekstowe w strukturze PDF — pliki PDF generowane przez renderHtmlAsPdf zawsze się kwalifikują. Skanowane dokumenty, gdzie strony to obrazy, wymagają OCR przed możliwością ekstrakcji tekstu. IronOCR jest uzupełniającą biblioteką Iron Software, która dodaje możliwości OCR do aplikacji Java i .NET.

W celu wyodrębnienia obrazów należy użyć pdf.extractAllImages(), co zwraca listę obiektów BufferedImage, po jednym dla każdego obrazu znalezionego w dokumencie. Zobacz przykład ekstrakcji tekstu z PDF i przykład ekstrakcji obrazów z PDF dla pełnych wzorców kodu.


Jak skompresować plik PDF?

PdfDocument.compressImages zmniejsza rozmiar pliku poprzez ponowne kodowanie osadzonych obrazów w niższej jakości. To jest szczególnie skuteczne dla PDF-ów, które zostały wygenerowane z stron internetowych zawierających duże zdjęcia lub obrazy banerowe.

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/compress-pdf.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

PdfDocument pdf = PdfDocument.fromFile(Paths.get("large_report.pdf"));

// Compress embedded images to 60% quality (0–100 scale)
pdf.compressImages(60);

pdf.saveAs("compressed_report.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/compress-pdf.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

PdfDocument pdf = PdfDocument.fromFile(Paths.get("large_report.pdf"));

// Compress embedded images to 60% quality (0–100 scale)
pdf.compressImages(60);

pdf.saveAs("compressed_report.pdf");
JAVA

Wartości jakości między 50 a 75 zwykle zmniejszają rozmiar pliku o 40–70% przy akceptowalnej wierności wizualnej dla czytania na ekranie. Wartości poniżej 40 mogą wprowadzać widoczne artefakty na zdjęciach, chociaż mogą być akceptowalne dla diagramów i zrzutów ekranu z dużymi obszarami jednokolorowymi.

Przeciążona metoda compressImages(int quality, boolean scaleExistingImages) akceptuje również wartość logiczną określającą, czy skalować obrazy, które są większe niż ich rozmiar wyświetlany w pliku PDF. Ustawienie tego na true dodatkowo zmniejsza rozmiar pliku poprzez wyeliminowanie nadmiernej rozdzielczości, która występuje, gdy obraz o wysokiej rozdzielczości jest osadzony, ale wyświetlany na stronie w znacznie mniejszym rozmiarze. Jest to powszechne w konwersjach web-to-PDF, gdzie obrazy są serwowane przy rozdzielczości 2x dla wyświetlaczy retina.

Przykład kompresji PDF demonstruje kompresję masową w wielu stronach dokumentów, w tym sposób weryfikacji zmniejszenia rozmiaru po kompresji.


Kolejne kroki

Ten samouczek obejmował trzy metody konwersji HTML na PDF, instalację, konfigurację licencji, opcje renderowania, nagłówki i stopki, ustawienia układu strony, ekstrakcję tekstu i kompresję plików.

Aby pójść dalej, eksploruj te zasoby w dokumentacji IronPDF dla Javy:

  1. Ustawienia generowania PDFKonfiguruj DPI, powiększenie, limit czasu i typ mediów CSS dla precyzyjnej kontroli renderowania.
  2. Nagłówki i stopkiDodaj nagłówki i stopki w HTML z logotypami marki i niestandardowymi układami.
  3. Układ strony — ustaw niestandardowe marginesy i wymiary papieru dla gotowego do druku wyniku.
  4. Znaki wodne — stosuj tło i pierwszoplanowe znaki wodne dla bezpieczeństwa dokumentu.
  5. Ekstrakcja treściWyciągaj tekst z PDF i wyciągaj obrazy do przetwarzania na dalszych etapach.
  6. Kompresja plikówZmniejsz rozmiar pliku PDF dla przechowywania i wysyłki e-mail.
  7. Dokumentacja API — przeglądaj pełne dokumentację API IronPDF dla Javy dla każdej klasy i metody.

Rozpocznij bezpłatny okres próbny, aby zacząć konwertować HTML na PDF w swojej aplikacji Java już dziś. Gdy będziesz gotowy do wdrożenia, sprawdź opcje licencyjne, aby znaleźć plan, który pasuje do twojego projektu.

Często Zadawane Pytania

Jak przekonwertować ciąg HTML na PDF w Java?

Wywołaj PdfDocument.renderHtmlAsPdf z twoim ciągiem HTML. Przekaż opcjonalną bazową ścieżkę jako drugi argument tak, aby względne referencje CSS, obrazków i skryptów były poprawnie rozwiązane. Wywołaj saveAs na zwróconym PdfDocument, aby zapisać plik.

Jak przekonwertować URL na PDF w Java?

Wywołaj PdfDocument.renderUrlAsPdf z pełnym URL. IronPDF pobiera stronę, czeka na wykonanie JavaScript, i renderuje w pełni załadowany DOM jako PDF.

Jak przekonwertować lokalny plik HTML na PDF w Java?

Wywołaj PdfDocument.renderHtmlFileAsPdf z pełną ścieżką pliku. Wszystkie względne odwołania do zasobów w pliku HTML są automatycznie rozwiązywane względem katalogu tego pliku.

Jak zainstalować IronPDF w projekcie Java, używając Maven?

Dodaj zależność IronPDF do pom.xml z groupId com.ironsoftware i artifactId ironpdf, następnie uruchom mvn install z poziomu katalogu głównego projektu.

Jak usunąć znak wodny z plików PDF generowanych przez IronPDF?

Wywołaj License.setLicenseKey z ważnym kluczem licencyjnym przed jakimkolwiek wywołaniem renderowania. Bez klucza licencyjnego IronPDF nakłada kafelkowany znak wodny na każdą stronę.

Jak dodać nagłówki i stopki do PDF w Java?

Utwórz instancję TextHeaderFooter, ustaw jej właściwości tekstowe, używając tokenów formatu, takich jak {page} i {total-pages}, następnie wywołaj pdf.addTextHeaders i pdf.addTextFooters. Dla stylizowanych nagłówków z logotypami, użyj HtmlHeaderFooter zamiast tego.

Jak ustawić marginesy stron PDF i rozmiar papieru w Java?

Utwórz instancję ChromePdfRenderOptions i wywołaj setMarginTop, setMarginBottom, setMarginLeft, setMarginRight (w milimetrach) i setPaperSize z wartością wyliczeniową PaperSize. Przekaż opcje do dowolnej metody renderowania.

Jak połączyć wiele plików PDF w jeden w Java?

Utwórz List z dokumentami w pożądanej kolejności i przekaż ją do PdfDocument.merge. Metoda zwraca nowy PdfDocument zawierający wszystkie strony ze wszystkich źródeł.

Jak zabezpieczyć hasłem plik PDF w Java?

Utwórz instancję SecurityOptions, wywołaj setUserPassword i setOwnerPassword, następnie zastosuj to za pomocą PdfSecurityManager przed zapisaniem dokumentu.

Jak wyodrębnić tekst z pliku PDF w Javie?

Wywołaj pdf.extractAllText() aby pozyskać całą zawartość tekstową jako pojedynczy ciąg znaków. Użyj extractTextFromPage(int pageIndex) do wyodrębnienia tekstu z konkretnej strony.

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.