Wie man HTML in PDF mit IronPDF for Java konvertiert

HTML zu PDF in Java

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

IronPDF for Java konvertiert HTML-Inhalte in PDF-Dokumente, indem es eine vollständige Chromium-Rendering-Engine ausführt — dieselbe Engine, die moderne Browser antreibt. Jede CSS-Eigenschaft, Schriftart, Bild und von JavaScript generiertes Layout rendert genau so, wie es in einem Browserfenster erscheinen würde, und landet dann als pixelgenaues PDF auf der Seite.

Dieses Tutorial führt durch die drei grundlegenden Konvertierungsmethoden: HTML-String zu PDF, Live-URL zu PDF und lokale HTML-Datei zu PDF. Es behandelt auch die Installation, Lizenzkonfiguration und die Rendering-Optionen, die Entwickler am häufigsten verwenden.

Die Java-Bibliothek spiegelt die API-Struktur von IronPDF for .NET wider, sodass Teams, die an beiden Laufzeitsystemen arbeiten, den Übergang einfach finden werden. Der Quellcode für alle Beispiele in diesem Tutorial ist auf GitHub verfügbar.

Schnellstart: HTML zu PDF in Java konvertieren

Fügen Sie IronPDF Ihrer Maven pom.xml hinzu und rufen Sie eine einzige Methode auf, um ein PDF zu erstellen:

: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

Nutzen Sie IronPDF heute kostenlos in Ihrem Projekt.

Erster Schritt:
green arrow pointer

Inhaltsverzeichnis


Installation von IronPDF for Java

IronPDF for Java wird über Maven Central und als eigenständiges JAR ausgeliefert. Der Maven-Weg wird für die meisten Projekte empfohlen, da er transitive Abhängigkeiten verwaltet und Bibliotheksversionen auf Entwicklermaschinen und CI-Pipelines konsistent hält.

Option 1: Fügen Sie IronPDF als Maven-Abhängigkeit hinzu

Öffnen Sie die pom.xml Datei des Projekts und fügen Sie die folgenden Einträge zum <dependencies> Block hinzu:

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

Das erste Artefakt bezieht die neueste IronPDF for Java-Veröffentlichung. Das zweite Artefakt aktiviert SLF4J-Logging, sodass die IronPDF-Render-Engine während der Ausführung Diagnosemeldungen schreiben kann. Entwickler, die Logback oder Log4J bevorzugen, können diesen Anbieter stattdessen verwenden. Die Protokollierungsabhängigkeit ist optional — weglassen, wenn Protokolle nicht benötigt werden.

Nachdem Sie die Datei gespeichert haben, führen Sie mvn install aus dem Wurzelverzeichnis des Projekts aus, um beide Bibliotheken herunterzuladen. Maven löst den vollständigen Abhängigkeitsgraphen automatisch auf, einschließlich aller transitive Abhängigkeiten, die IronPDF erfordert.

Für Gradle-Projekte ist die entsprechende Abhängigkeitsdeklaration in build.gradle:

: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

Ersetzen Sie [LATEST_VERSION] durch die Versionsnummer aus dem IronPDF Änderungsprotokoll oder von der Maven Central-Seite für das Artefakt.

Option 2: Die JAR-Datei manuell hinzufügen

Laden Sie die IronPDF-JAR direkt von Maven Central herunter und fügen Sie sie dem Klassenpfad des Projekts hinzu. Dieser Ansatz funktioniert ohne ein Build-Tool, erfordert jedoch eine manuelle Versionsverwaltung und eignet sich am besten für ältere Projekte, die Maven oder Gradle nicht verwenden, oder für Umgebungen, in denen der Zugriff auf das Netzwerk eingeschränkt ist.

Nach dem Herunterladen die JAR zum Klassenpfad des Projekts über die Projekteinstellungen der IDE hinzufügen. In IntelliJ IDEA klicken Sie mit der rechten Maustaste auf das Projektstammverzeichnis, wählen Sie "Moduleinstellungen öffnen", navigieren Sie zu "Abhängigkeiten" und fügen Sie die JAR-Datei hinzu. In Eclipse klicken Sie mit der rechten Maustaste auf das Projekt, gehen Sie zu "Eigenschaften > Java-Build-Pfad > Bibliotheken" und klicken Sie dann auf "Externe JARs hinzufügen".

Hinweis:Die IronPDF-JAR enthält ein gebündeltes Chromium-Engine-Binary. Der erste Renderaufruf auf einem neuen Computer extrahiert es in ein temporäres Verzeichnis, was einige Sekunden dauert. Nachfolgende Aufrufe verwenden das zwischengespeicherte Binary und starten sofort. In Container-Umgebungen wird empfohlen, ein dauerhaftes Volume am Extraktionspfad zu montieren, um eine erneute Extraktion bei jedem Containerstart zu vermeiden.

Systemanforderungen

IronPDF for Java läuft auf JDK 8 oder höher. Es unterstützt Windows, Linux und macOS auf sowohl x86-64- als auch ARM64-Architekturen. Keine externe Browserinstallation erforderlich — das Chromium-Binary ist mit der JAR gebündelt. Auf Linux stellen Sie sicher, dass die von Chromium erwarteten standardmäßigen Shared Libraries vorhanden sind. Die IronPDF for Java-Dokumentation listet die minimal erforderlichen Pakete für gängige Linux-Distributionen auf.


Wie importiere ich IronPDF und konfiguriere einen Lizenzschlüssel?

Jede IronPDF Klasse befindet sich im com.ironsoftware.ironpdf Paket. Importieren Sie es am Anfang jeder Quelldatei, die PDF-Dokumente erstellen oder bearbeiten wird.

: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

Ohne Lizenzschlüssel läuft IronPDF im Testmodus und versieht jede PDF-Seite mit einem gekachelten Wasserzeichen. Das Festlegen des Schlüssels entfernt das Wasserzeichen und schaltet alle Funktionen frei. Starten Sie eine kostenlose Testversion, um sofort einen Schlüssel zu erhalten.

IronPDF Testmodus-Wasserzeichen wird über eine gerenderte PDF-Seite gestempelt

Der Lizenzschlüssel ist eine Zeichenfolge, die von Iron Software ausgestellt wird, wenn eine Test- oder kommerzielle Lizenz aktiviert wird. Speichern Sie es in einer Umgebungsvariable oder einer Konfigurationsdatei anstatt es hardzucodieren. Ein gängiges Muster ist, es beim Start aus einer Umgebungsvariable zu lesen:

: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

Dieser Ansatz hält den Schlüssel aus der Versionskontrolle heraus und macht es einfach, unterschiedliche Schlüssel in Entwicklungs-, Test- und Produktionsumgebungen zu verwenden.

WichtigLicense.setLicenseKey und Settings.setLogPath müssen beide aufgerufen werden, bevor Rendering- oder Manipulationsmethoden ausgeführt werden. Platzieren Sie sie zu Beginn der Anwendung - idealerweise in einem statischen Initialisierungsblock oder einem main Einstiegspunkt.


Wie konvertiere ich einen HTML-String zu PDF?

PdfDocument.renderHtmlAsPdf akzeptiert einen String mit HTML-Markup und gibt ein PdfDocument Objekt zurück, das gespeichert, zusammengeführt oder modifiziert werden kann, bevor auf die Festplatte geschrieben wird. Dies ist die primäre Methode zum programmgesteuerten Generieren von HTML — zum Beispiel Berichte, die durch das Kombinieren von Datenbankwerten mit einer als Java-String definierten HTML-Vorlage erstellt werden oder aus einer Datei geladen werden.

: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

Der Render-Engine löst relative Asset-Pfade (Bilder, Stylesheets, Skripte) gegen das optionale zweite Argument — den Basispfad auf. Wenn ein Basispfad angegeben wird, behandelt die Engine ihn als Wurzel, von der relative URLs aufgelöst werden. Dies ermöglicht HTML, das auf lokale CSS- und Bilddateien verweist, korrekt zu rendern, ohne irgendeine Pfadmanipulation im Quellmarkup.

: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

Die saveAs Methode akzeptiert einen absoluten oder relativen Pfad. Die Bibliothek erstellt die Datei, wenn sie nicht existiert, und überschreibt sie, wenn sie existiert. Wenn Sie in ein Verzeichnis schreiben, das die Anwendung möglicherweise noch nicht erstellt hat, erstellen Sie zuerst das Verzeichnis mit Files.createDirectories(Paths.get("output")), bevor Sie saveAs aufrufen.

IronPDF unterstützt den vollständigen HTML5- und CSS3-Funktionsumfang, wie er in Chromium implementiert ist. Benutzerdefinierte Schriftarten, die über @font-face in CSS geladen werden, werden korrekt gerendert, wenn die Schriftdateien am Basisweg zugänglich sind. SVG-Elemente und von JavaScript gerenderte <canvas> Elemente erscheinen ebenfalls in der PDF-Ausgabe.

TippsHalten Sie HTML-Vorlagen in einem eigenen Verzeichnis und geben Sie dieses Verzeichnis als Basispfad an. Dieses Muster ermöglicht es Designern, die Vorlage zu aktualisieren, ohne irgendeinen Java-Code zu berühren.


Wie konvertiere ich eine URL in ein PDF in Java?

PdfDocument.renderUrlAsPdf ruft die Seite an der angegebenen URL ab, wartet darauf, dass JavaScript ausgeführt und dynamische Inhalte geladen werden, und konvertiert dann das vollständig gerenderte DOM in ein 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

Die Engine verarbeitet Authentifizierungsheader, Cookies und JavaScript-intensive Single-Page-Applikationen. Für Seiten, die ein Login oder benutzerdefinierte Anforderungsheader erfordern, verwenden Sie die ChromePdfRenderOptions Klasse, um Anforderungsparameter zu konfigurieren, bevor Sie renderUrlAsPdf aufrufen.

Diese Konvertierungsmethode ist nützlich zum Archivieren von Webseiten, Erstellen von Compliance-Snapshots und Erzeugen von kundenorientierten Berichten aus internen Dashboards. Von einem lokalen Netzwerk aus zugängliche servergenerierte Seiten werden vollständig unterstützt - übergeben Sie http://localhost:8080/report/123 auf die gleiche Weise wie eine öffentliche URL. IronPDF wartet darauf, dass die Seite vollständig geladen ist, bevor sie gerendert wird, sodass Dashboards, die auf asynchrone Datenabrufe angewiesen sind, mit ihren Daten gefüllt gerendert werden, anstatt mit leeren Diagrammen.

Für Seiten hinter der HTTP-Basisauthentifizierung übergeben Sie Anmeldedaten in der URL im http://user:password@host/path Format. Für Seiten, die durch Sitzungscookies geschützt sind, konfigurieren Sie das Cookie-Jar auf dem ChromePdfRenderOptions Objekt, bevor Sie es an renderUrlAsPdf übergeben. Weitere Einzelheiten zur Konfiguration von Anfrage-Headern und zur Verwaltung von Cookies für authentifizierte URLs finden Sie in der IronPDF for Java-Dokumentation.


Wie konvertiere ich eine lokale HTML-Datei in PDF?

PdfDocument.renderHtmlFileAsPdf liest eine HTML-Datei vom lokalen Dateisystem und rendert sie zu einem PDF. Alle verlinkten Assets (CSS, JavaScript, Bilder), die durch relative Pfade in der Datei referenziert werden, werden relativ zum Verzeichnis der HTML-Datei aufgelöst.

: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

Dieser Ansatz ist am genauesten für die Konvertierung komplexer HTML-Dokumente. Da die Render-Engine auf dem Dateisystempfad statt einem In-Memory-String operiert, werden relative Verweise auf mehrstufige Assetverzeichnisse ohne zusätzliche Konfiguration aufgelöst. Eine Vorlage, die auf einen style.css und script.js im selben Ordner angewiesen ist, wird richtig gerendert, ohne dass Pfadeinstellungen erforderlich sind.

Diese Methode eignet sich besonders gut für die Erstellung von Rechnungen, die Produktion von Verträgen und jeder Workflow, bei dem ein Designer die HTML-Vorlage unabhängig von der Java-Anwendung pflegt. Das Entwicklerteam behandelt die Vorlage als eine Datendatei, speichert sie neben der Anwendung und ruft renderHtmlFileAsPdf mit dem Pfad auf. Wenn der Designer die Vorlage aktualisiert, um Branding oder Layout zu ändern, sind keine Änderungen am Java-Code erforderlich.

Hinweis:IronPDF unterstützt alle modernen HTML- und CSS-Funktionen, die Chromium unterstützt – Flexbox, CSS Grid, CSS-Variablen, Webfonts und Medienabfragen rendern alle korrekt in der Ausgabepdf.


Wie stelle ich Optionen für die PDF-Erstellung ein?

ChromePdfRenderOptions steuert das Renderverhalten: Papiergröße, Ränder, Zoomstufe, Druckmedientyp, JavaScript-Zeitlimit und mehr. Erstellen Sie eine Instanz, konfigurieren Sie die gewünschten Eigenschaften und übergeben Sie sie als zweites Argument an jede render*AsPdf Methode.

: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

Die CssMediaType.PRINT Einstellung sagt der Engine, dass sie @media print CSS-Regeln anwenden soll, die viele HTML-Vorlagen verwenden, um Navigationsleisten zu verbergen und druckspezifische Layouts zu verwenden. Die setJavaScriptTimeout Methode ist wichtig für Seiten, die JavaScript-Charting-Bibliotheken (D3.js, Chart.js) oder Lazy-Loading-Inhalte nutzen - wenn das Zeitlimit zu kurz ist, wird das PDF die Seite erfassen, bevor JavaScript mit dem Rendering fertig ist, und leere Diagramme oder fehlende Abschnitte produzieren. Verlängern Sie das Zeitlimit, wenn der gerenderte PDF-Inhalte fehlen.

Die setDpi Methode steuert die Bildauflösung in der Ausgabe. Der Standardwert (96 DPI) ist für On-Screen-Dokumente geeignet. Für PDFs, die gedruckt oder auf hochauflösenden Displays angezeigt werden, verwenden Sie 150 oder 300 DPI. Höhere DPI-Werte erhöhen die Dateigröße proportional. Siehe das Beispiele für PDF-Erstellungseinstellungen für die vollständige Liste der konfigurierbaren Eigenschaften.


Icon Quote related to Wie stelle ich Optionen für die PDF-Erstellung ein?

Meine Lieblingsbibliothek dieser Art ist IronPDF. Es ermöglicht eine schnelle und effiziente Bearbeitung von PDF-Dateien. Es verfügt auch über viele wertvolle Funktionen, wie das Exportieren in das PDF/A-Format und das digitale Signieren von PDF-Dokumenten.

Milan Jovanovic related to Wie stelle ich Optionen für die PDF-Erstellung ein?

Milan Jovanovic

Microsoft MVP

Fallstudie ansehen
Icon Quote related to Wie stelle ich Optionen für die PDF-Erstellung ein?

IronOCR bedeutet, dass wir jährlich 40.000 $ durch manuelle Verarbeitung einsparen können, während die Produktivität gesteigert wird und Ressourcen für wichtige Aufgaben freigesetzt werden. Ich würde es sehr empfehlen.

Brent Matzelle related to Wie stelle ich Optionen für die PDF-Erstellung ein?

Brent Matzelle

Technischer Leiter, OPYN

Fallstudie ansehen
Icon Quote related to Wie stelle ich Optionen für die PDF-Erstellung ein?

Die Iron Suite spielt eine entscheidende Rolle in unseren Operationen. Diese Werkzeuge erhöhen die Effizienz im gesamten Unternehmen, einschließlich der Erstellung von Grundrissen und der Verbesserung des Bestandsmanagements.

David Jones related to Wie stelle ich Optionen für die PDF-Erstellung ein?

David Jones

Leitender Software-Ingenieur, Agorus Build

Fallstudie ansehen

Wie füge ich Kopf- und Fußzeilen hinzu?

IronPDF unterstützt sowohl textbasierte als auch HTML-basierte Kopf- und Fußzeilen. Textkopfzeilen verwenden ein TextHeaderFooter Objekt mit Format-Token ({page}, {total-pages}, {date}), die zur Renderzeit automatisch aufgelöst werden.

: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

Die {page} und {total-pages} Tokens produzieren Werte wie "3 von 12" in der Fußzeile und aktualisieren sich automatisch, wenn sich die Seitenzahl ändert, sodass es nicht erforderlich ist, die endgültige Seitenzahl vor dem Rendern zu kennen. Das {date} Token fügt das aktuelle Datum unter Verwendung der Systemsprache ein. Andere verfügbare Tokens sind {time}, {document-title} und {url}.

Mit addTextHeaders und addTextFooters hinzugefügte Kopf- und Fußzeilen gelten standardmäßig auf jede Seite im Dokument. Geben Sie das optionale Seitenbereichsparameter an, um sie auf bestimmte Seiten zu beschränken — zum Beispiel, um die Kopfzeile auf der Titelseite zu überspringen.

Für stilisierte Kopfzeilen, die Logos, Markenfarben oder benutzerdefinierte Layouts erfordern, verwenden Sie HtmlHeaderFooter stattdessen - es akzeptiert einen vollständigen HTML-String und rendert ihn auf die gleiche Weise wie den Seitenkörper. Sehen Sie sich das Beispiel für benutzerdefinierte Kopf- und Fußzeilen für das vollständige HTML-Kopfzeilenmuster an.


Wie stelle ich Seitenränder und Papierformate ein?

Übergeben Sie eine ChromePdfRenderOptions Instanz mit konfigurierten Rand- und Papiergrößenwerten, bevor Sie eine render*AsPdf Methode aufrufen.

: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

Randwerte sind in Millimetern. Das PaperSize Enum deckt Standardgrößen ab (A4, Letter, Legal, A3 und andere). Entwickler, die nicht standardisierte Abmessungen benötigen, können eine benutzerdefinierte Breite und Höhe mit options.setCustomPaperWidth und options.setCustomPaperHeight festlegen. Das Beispiel für benutzerdefinierte Papierformate und das Beispiel für benutzerdefinierte Ränder zeigen die vollständigen Konfigurationsmuster.


Wie wende ich ein Wasserzeichen auf ein PDF an?

Ein Wasserzeichen in IronPDF ist HTML, das über jede Seite mit einstellbarer Deckkraft gestempelt wird. Dieser Ansatz gibt Entwicklern vollständige Kontrolle über das Erscheinungsbild des Wasserzeichens — jedes HTML-Element, Bild oder gestalteter Text kann als Stempel dienen.

: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

Die applyStamp Methode akzeptiert einen HtmlStampOptions Parameter für präzise Positionierung - Mitte, oben links, benutzerdefinierte Pixel-Offsets und Z-Index (Vordergrund oder Hintergrund). Das Festlegen des Stempels als Hintergrund platziert es hinter dem Text, sodass das Dokument lesbar bleibt. Das Festlegen als Vordergrund platziert es oben, was beim Drucken schwerer zu überdecken ist.

TippsUm ein sich wiederholendes Kachelwasserzeichen zu erzeugen — die Art, die IronPDF selbst im Testmodus anwendet — rendern Sie ein Raster aus gedrehten Textelementen im HTML-Stempelstring und dimensionieren Sie das Element, um die gesamte Seite auszufüllen.

Sehen Sie sich die Anleitung für benutzerdefinierte Wasserzeichen für Beispiele zur Hintergrundwasserzeichen, zu gekachelten Mustern und zum Entfernen von Wasserzeichen durch Upgrade auf die Lizenz an.


Wie füge ich mehrere PDFs zu einem zusammen?

PdfDocument.merge kombiniert zwei oder mehr PdfDocument Objekte in der Reihenfolge und gibt ein einziges neues Dokument zurück. Dies ist der bevorzugte Ansatz zum Erstellen von Berichten aus Komponentenabschnitten, Anfügen von Deckblättern oder Zusammenfügen von benutzerspezifischen Abschnitten eines Batch-Jobs.

: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

Die Seiten aus jedem Quelldokument erscheinen in der zusammengeführten Ausgabe in der Reihenfolge, die die Quellliste angibt. Das zusammengeführte Dokument erbt keine Metadaten von einer einzelnen Quelle - aktualisieren Sie meta.title und andere Dokumenteigenschaften mit PdfDocument.getPdfMetaData() nach dem Zusammenführen, wenn diese Felder für den nachgelagerten Verbraucher wichtig sind.

Die merge Methode hat auch eine Überladung mit zwei Argumenten, die genau zwei PdfDocument Instanzen akzeptiert. Für Massen-Zusammenführungen vieler Dokumente verwenden Sie die Listenüberladung — sie ist effizienter als das Aneinanderreihen mehrerer Zwei-Argument-Aufrufe, da sie alle Quellen in einem einzigen Durchgang verarbeitet.

Hinweis:Jede Quell-PdfDocument in der Zusammenführungsliste bleibt nach dem Aufruf gültig und unverändert. Die merged Instanz ist ein neues, unabhängiges Dokument. Geben Sie Quelldokumente mit ihrer close() Methode frei, wenn sie nicht mehr benötigt werden, um die zugehörigen nativen Ressourcen freizugeben.


Wie füge ich Seiten zu einem PDF hinzu oder entferne sie daraus?

Einzelne Seiten können aus einem Dokument in ein anderes kopiert oder vollständig gelöscht werden, indem die PdfDocument.copyPage, PdfDocument.copyPages und PdfDocument.removePages Methoden verwendet werden.

: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

Seitenindizes in IronPDF sind nullbasiert. Beim Entfernen mehrerer Seiten geben Sie alle Indizes in einem einzelnen removePages Aufruf an, anstatt ihn mehrmals in einer Schleife aufzurufen, da jede Entfernung nachfolgende Seitenindizes verschiebt. Das Übergeben der gesamten Liste auf einmal vermeidet Index-Abweichungen. Um beispielsweise die Seiten 2 und 4 aus einem fünfseitigen Dokument zu entfernen, übergeben Sie Arrays.asList(1, 3) - nicht zwei separate Aufrufe.

Um Seiten aus einem externen PDF einzufügen - beispielsweise einen rechtlichen Hinweis aus einer statischen Vorlage anzuhängen - verwenden Sie PdfDocument.insertPdf, um das externe Dokument an einer bestimmten Position zu spleißen. Die Seitenanzahl des empfangenden Dokuments wird sofort nach dem Einfügen aktualisiert.

Die css page-break-after:always CSS-Eigenschaft ist der Standardweg, um Seitenumbrüche in HTML zu erzwingen, die zu PDF gerendert werden. IronPDF unterstützt auch die neuere break-after: page CSS-Eigenschaft. Beide Ansätze produzieren vorhersehbare Seitenumbrüche, ohne spezielle Java-Codes erforderlich zu machen.


Wie schütze ich ein PDF in Java mit einem Passwort?

IronPDF unterstützt zwei unterschiedliche Passwörter auf einem PDF: ein Eigentümer-Passwort, das Bearbeitungs-, Druck- und Kopierberechtigungen steuert, und ein Benutzer-Passwort, das das Öffnen des Dokuments regelt. Beide werden über die SecurityOptions Klasse gesetzt.

: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

Die AllowUserPrinting Einstellung akzeptiert ein PrintOptions Enum: FullPrintQuality, LowQualityPrint oder NoPrint. Wenn das Eigentümer-Passwort gesetzt ist, aber das Benutzer-Passwort leer bleibt, öffnet sich das Dokument ohne Passwort, aber Bearbeitung und andere Vorgänge erfordern das Eigentümer-Passwort in einem PDF-Editor.

WarnungDer PDF-Passwortschutz verschlüsselt die Datei, ist jedoch kein Ersatz für ordnungsgemäße Zugangskontrollsysteme. Bestimmte Benutzer mit spezialisierten Tools können versuchen, schwache Passwörter durch Brute-Force-Angriffe anzugreifen. Verwenden Sie starke, zufällig generierte Passwörter für Dokumente, die echte Sicherheit erfordern.


Wie konvertiere ich eine HTML-Vorlage mit dynamischen Daten?

Die Generierung von PDFs aus einer datengesteuerten HTML-Vorlage ist einer der häufigsten Produktionsanwendungsfälle für IronPDF. Der Standardansatz besteht darin, den HTML-String in Java mit einer Templating-Bibliothek oder String-Operationen zu erstellen und dann den fertigen String an renderHtmlAsPdf zu übergeben.

: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

Für größere Projekte ziehen Sie eine Java-Template-Bibliothek wie Thymeleaf oder Freemarker in Betracht, um HTML-Vorlagen als separate Dateien zu verwalten, Daten über ein Kontextobjekt einzuspeisen und die Templatesyntax sauberer zu halten als String-Konkatenation. Beide Bibliotheken erzeugen einen einfachen HTML-String, der direkt an renderHtmlAsPdf übergeben wird.

TippsBeim Generieren von PDFs in einem Batch-Job - zum Beispiel eine Rechnung pro Kunde - instanziieren Sie ChromePdfRenderOptions einmal vor der Schleife und wiederverwenden Sie dieselbe Instanz für jeden Renderaufruf. Das Erstellen eines neuen Optionsobjekts pro Aufruf erzeugt unnötigen Objektzuweisungsoverhead.


Wie extrahiere ich Text aus einem PDF in Java?

PdfDocument.extractAllText liest alle Textinhalte von jeder Seite in einem PDF und gibt sie als einen einzelnen String zurück. Dies ist nützlich für die Suchindexierung, die Datenextraktion und die Inhaltsvalidierung nach dem Rendern.

: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

Der zurückgegebene String behält die Lesereihenfolge des Textes auf jeder Seite bei, enthält jedoch keine Formatierung. Leerzeichen zwischen Spalten und Tabellenzellen werden als Leerzeichen dargestellt. Für PDFs, die mehrere logische Abschnitte enthalten, isoliert extractTextFromPage(int pageIndex) den Text von einer einzigen Seite, was effizienter ist, wenn große Dokumente eine Seite nach der anderen verarbeitet werden.

Textextraktion funktioniert nur bei PDFs, bei denen Text als tatsächliche Textobjekte in der PDF-Struktur gespeichert ist - von renderHtmlAsPdf generierte PDFs qualifizieren sich immer. Gescanntedokumente, bei denen die Seiten Bilder sind, erfordern OCR, bevor die Textextraktion möglich ist. IronOCR ist eine ergänzende Iron Software-Bibliothek, die Java- und .NET-Anwendungen OCR-Fähigkeiten hinzufügt.

Für die Bildextraktion verwenden Sie pdf.extractAllImages(), das eine Liste von BufferedImage Objekten zurückgibt, eines pro im Dokument gefundenes Bild. Weitere Informationen finden Sie im Beispiel zur Textextraktion aus einem PDF und im Beispiel zur Bildextraktion aus PDFs.


Wie komprimiere ich eine PDF-Datei?

PdfDocument.compressImages reduziert die Dateigröße, indem eingebettete Bilder mit niedrigerer Qualität neu codiert werden. Dies ist insbesondere effektiv für PDFs, die aus Webseiten mit großen Fotos oder Bannerbildern generiert wurden.

: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

Qualitätswerte zwischen 50 und 75 reduzieren die Dateigröße typischerweise um 40–70% mit akzeptabler visueller Wiedergabetreue beim Bildschirmlesen. Werte unter 40 können auf Fotos sichtbare Artefakte einführen, obwohl sie für Diagramme und Screenshots mit großen einfarbigen Flächen akzeptabel sein können.

Die überladene compressImages(int quality, boolean scaleExistingImages) Methode akzeptiert auch ein Boolean dafür, ob Bilder, die größer als ihre angezeigte Größe im PDF sind, skaliert werden sollen. Wenn dies auf true gesetzt wird, wird die Dateigröße weiter reduziert, indem die überschüssige Auflösung entfernt wird, die auftritt, wenn ein hochauflösendes Bild eingebettet, aber auf der Seite in viel kleinerer Größe angezeigt wird. Dies ist üblich bei Web-zu-PDF-Konvertierungen, bei denen Bilder mit 2-facher Auflösung für Retina-Displays bereitgestellt werden.

Das Beispiel zur PDF-Komprimierung zeigt die Stapelkomprimierung über mehrseitige Dokumente, einschließlich der Überprüfung der Größenreduktion nach der Komprimierung.


Nächste Schritte

Dieses Tutorial behandelte die drei HTML-zu-PDF-Konvertierungsmethoden, die Installation, die Lizenzkonfiguration, die Renderoptionen, Kopf- und Fußzeilen, Seitenlayouts, Text Extraktion und Dateikomprimierung.

Für weitere Informationen erkunden Sie diese Ressourcen in der IronPDF for Java Dokumentation:

  1. PDF-ErstellungseinstellungenKonfigurieren Sie DPI, Zoom, Timeout und CSS-Mediatyp für präzise Renderkontrolle.
  2. Kopf- und FußzeilenFügen Sie HTML-Kopf- und Fußzeilen mit Markenlogos und benutzerdefinierten Layouts hinzu.
  3. Seitenlayout — Setzen Sie benutzerdefinierte Ränder und Papierabmessungen für druckbereite Ergebnisse.
  4. Wasserzeichen — Wenden Sie Hintergrund- und Vordergrundwasserzeichen an, um Dokumentensicherheit zu gewährleisten.
  5. InhaltsextraktionExtrahieren Sie Text aus PDFs und extrahieren Sie Bilder für nachgelagerte Verarbeitung.
  6. DateikomprimierungReduzieren Sie die PDF-Dateigröße für Speicherung und E-Mail-Versand.
  7. API Referenz — Durchsuchen Sie die vollständige IronPDF Java API Referenz für jede Klasse und Methode.

Starten Sie eine kostenlose Testversion, um HTML in Ihrer Java-Anwendung heute in PDF zu konvertieren. Wenn Sie bereit sind für die Bereitstellung, sehen Sie sich die Lizenzierungsoptionen an, um den Plan zu finden, der zu Ihrem Projekt passt.

Häufig gestellte Fragen

Wie konvertiere ich einen HTML-String in ein PDF in Java?

Rufen Sie PdfDocument.renderHtmlAsPdf mit Ihrem HTML-String auf. Geben Sie einen optionalen Basis-Pfad als zweiten Parameter an, damit relative CSS-, Bild- und Skript-Verweise korrekt aufgelöst werden. Rufen Sie saveAs auf dem zurückgegebenen PdfDocument auf, um die Datei zu schreiben.

Wie konvertiere ich eine URL in ein PDF in Java?

Rufen Sie PdfDocument.renderUrlAsPdf mit der voll qualifizierten URL auf. IronPDF ruft die Seite ab, wartet auf die Ausführung von JavaScript und rendert das vollständig geladene DOM in PDF.

Wie konvertiere ich eine lokale HTML-Datei in ein PDF in Java?

Rufen Sie PdfDocument.renderHtmlFileAsPdf mit einem absoluten Dateipfad auf. Alle relativen Asset-Verweise in der HTML-Datei werden automatisch relativ zu dem Verzeichnis dieser Datei aufgelöst.

Wie installiere ich IronPDF in einem Java-Projekt mit Maven?

Fügen Sie die IronPDF-Abhängigkeit zur pom.xml mit groupId com.ironsoftware und artifactId ironpdf hinzu, und führen Sie dann mvn install aus dem Projektstamm aus.

Wie entferne ich das Wasserzeichen von PDFs, die von IronPDF generiert wurden?

Rufen Sie License.setLicenseKey mit einem gültigen Lizenzschlüssel vor einem Rendering-Aufruf auf. Ohne Lizenzschlüssel stempelt IronPDF auf jeder Seite ein gekacheltes Wasserzeichen.

Wie füge ich Header und Footer zu einem PDF in Java hinzu?

Erstellen Sie eine TextHeaderFooter-Instanz, setzen Sie ihre Texteigenschaften unter Verwendung von Format-Token wie {page} und {total-pages}, und rufen Sie pdf.addTextHeaders und pdf.addTextFooters auf. Verwenden Sie alternativ HtmlHeaderFooter für gestaltete Header mit Logos.

Wie setze ich Seitenränder und Papiergröße eines PDFs in Java?

Erstellen Sie eine ChromePdfRenderOptions-Instanz und rufen Sie setMarginTop, setMarginBottom, setMarginLeft, setMarginRight (in Millimetern) und setPaperSize mit einem PaperSize-Enum-Wert auf. Übergeben Sie die Optionen an eine Render-Methode.

Wie füge ich mehrere PDFs in Java zu einem zusammen?

Erstellen Sie eine List<PdfDocument> mit den Dokumenten in der gewünschten Reihenfolge und übergeben Sie sie an PdfDocument.merge. Die Methode gibt ein neues PdfDocument zurück, das alle Seiten aus allen Quellen enthält.

Wie schütze ich ein PDF in Java mit einem Passwort?

Erstellen Sie eine SecurityOptions-Instanz, rufen Sie setUserPassword und setOwnerPassword auf und wenden Sie sie über PdfSecurityManager an, bevor Sie das Dokument speichern.

Wie extrahiere ich Text aus einem PDF in Java?

Rufen Sie pdf.extractAllText() auf, um allen Textinhalt als einzelnen String abzurufen. Verwenden Sie extractTextFromPage(int pageIndex), um Text von einer bestimmten Seite zu extrahieren.

Darrius Serrant
Full-Stack-Software-Ingenieur (WebOps)

Darrius Serrant hat einen Bachelor-Abschluss in Informatik von der University of Miami und arbeitet als Full-Stack-WebOps-Marketing-Ingenieur bei Iron Software. Seit seiner Jugend vom Programmieren angezogen, sah er die Informatik als sowohl mysteriös als auch zugänglich, was es zum perfekten Medium für Kreativität und Problemlösung ...

Weiterlesen
Bereit anzufangen?
Version: 2026.6 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis?
Führen Sie eine Probe aus Sehen Sie zu, wie Ihr HTML-Code in eine PDF-Datei umgewandelt wird.