HTML zu PDF in Java
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");
Nutzen Sie IronPDF heute kostenlos in Ihrem Projekt.
Inhaltsverzeichnis
- IronPDF for Java installieren
- Wie importiere ich IronPDF und konfiguriere einen Lizenzschlüssel?
- Wie konvertiere ich einen HTML-String in ein PDF?
- Wie konvertiere ich eine URL in ein PDF in Java?
- Wie konvertiere ich eine lokale HTML-Datei in ein PDF?
- Wie setze ich PDF-Generierungseinstellungen?
- Wie füge ich Kopf- und Fußzeilen hinzu?
- Wie setze ich Seitenränder und Papiergröße?
- Wie wende ich ein Wasserzeichen auf ein PDF an?
- Wie füge ich mehrere PDFs zu einem zusammen?
- Wie füge ich Seiten zu einem PDF hinzu oder entferne sie?
- Wie schütze ich ein PDF in Java mit einem Passwort?
- Wie konvertiere ich eine HTML-Vorlage mit dynamischen Daten?
- Wie extrahiere ich Text aus einem PDF in Java?
- Wie komprimiere ich eine PDF-Datei?
- Nächste Schritte
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>
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]'
// }
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".
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"));
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.

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);
}
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.
License.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");
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");
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.
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");
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");
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.
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");
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.
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.
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");
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");
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");
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.
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");
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.
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");
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");
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.
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");
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.
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);
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");
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:
- PDF-Erstellungseinstellungen — Konfigurieren Sie DPI, Zoom, Timeout und CSS-Mediatyp für präzise Renderkontrolle.
- Kopf- und Fußzeilen — Fügen Sie HTML-Kopf- und Fußzeilen mit Markenlogos und benutzerdefinierten Layouts hinzu.
- Seitenlayout — Setzen Sie benutzerdefinierte Ränder und Papierabmessungen für druckbereite Ergebnisse.
- Wasserzeichen — Wenden Sie Hintergrund- und Vordergrundwasserzeichen an, um Dokumentensicherheit zu gewährleisten.
- Inhaltsextraktion — Extrahieren Sie Text aus PDFs und extrahieren Sie Bilder für nachgelagerte Verarbeitung.
- Dateikomprimierung — Reduzieren Sie die PDF-Dateigröße für Speicherung und E-Mail-Versand.
- 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.


