HTML zu PDF in Java

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

Dieses Tutorial zeigt Java-Entwicklern, wie sie mit der IronPDF-Bibliothek HTML-Inhalte in pixelgenaue PDF-Dateien umwandeln können(portables Dokumentenformat) dokumente.

IronPDF ist ein vollwertiger PDF-Konverter und eine PDF-Verarbeitungsbibliothek. IronPDF ist verfügbar für.NET undJava programmiersprachen. Dieses Tutorial behandelt die Verwendung der Bibliothek zur Konvertierung von HTML-Inhalten(dateien, Markierungen, etc) in Java-Anwendungen. Die Anleitung zur Konvertierung von HTML in PDF in .NET-Anwendungen ist verfügbarhier.


Übersicht


Erste Schritte

1. Installation der IronPDF PDF Library for Java

Java Maven-Bibliothek für PDF

Installieren mit Maven

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2024.9.1</version>
</dependency>
oder
Java PDF JAR

Herunterladen JAR

  JAR herunterladen

Manuelle Installation in Ihr Projekt

Es gibt zwei Möglichkeiten für die Einbindung derIronPDF Bibliothek in einem Java-Projekt:

  1. IronPDF als Abhängigkeit in einem Maven-konfigurierten Java-Projekt hinzufügen
  2. Laden Sie die IronPDF JAR-Datei herunter und fügen Sie sie manuell dem Klassenpfad des Projekts hinzu.

    Im folgenden Abschnitt wird kurz auf beide Installationsmethoden eingegangen.

Option 1: IronPDF als Maven-Abhängigkeit installieren

Um IronPDF in einem Java-Projekt mit Maven zu installieren, fügen Sie die folgenden Artefakte in den Abhängigkeitsbereich der pom.xml-Datei des Java-Projekts ein.

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>com.ironsoftware</artifactId>
   <version>2024.9.1</version>
</dependency>

Das erste Artefakt verweist auf dieneueste Version der IronPDF-Bibliothek. Das zweite Artefakt verweist auf ein SL4J umsetzung. Diese Abhängigkeit ist erforderlich, damit die Rendering-Engine von IronPDF während der Ausführung Logging-Meldungen erzeugen kann. Softwareentwickler können diese Abhängigkeit durch andere Protokollierungsanbieter ersetzen(wie zum Beispiel Logback und Log4J); oder ganz darauf verzichten, wenn sie keine Protokollierung benötigen oder wünschen.

Führen Sie den Befehl mvn install in einem Terminal im Stammverzeichnis des Java-Projekts aus, um die zuvor erwähnten Bibliotheken herunterzuladen.

Option 2: Manuelle Installation des IronPDF JAR

Entwickler, die es vorziehen, weder Maven noch ein anderes System zur Verwaltung von Abhängigkeiten zu verwenden, müssen!!--inline-anchor_ironpdfjava-fatjar{die JAR-Datei der IronPDF-Bibliothek herunterladen}--!! (und die optionale SL4J umsetzung) und fügen sie manuell zum Klassenpfad ihres Projekts hinzu.

Laden Sie die IronPDF JAR-Datei direkt von hier (oder aus dem Maven Repository).


Anleitungen und Code-Beispiele

2. Konvertierung von HTML in PDF

In diesem Abschnitt werden die herausragenden HTML-zu-PDF-Rendering-Fähigkeiten von IronPDF vorgestellt.

Die Klasse PdfDocument ist der Einstiegspunkt für alle Funktionen von IronPDF zur Darstellung und Bearbeitung von PDF-Dokumenten. Die Klasse enthält eine Reihe von robusten Methoden für die Konvertierung von HTML- in PDF-Dokumente zur Unterstützung der folgenden drei Anwendungsfälle: Konvertierung aus HTML-String/Markup, Konvertierung aus einer HTML-Datei und Konvertierung aus einer URL. In diesem Abschnitt wird kurz auf jeden dieser Anwendungsfälle eingegangen, mit Links zu zusätzlichen Inhalten, um weitere Informationen zu sammeln.

2.1 Importieren Sie das IronPDF-Paket

Alle IronPDF-Konvertierungs- und Verarbeitungskomponenten sind in dem Paket com.ironsoftware.ironpdf enthalten.

Fügen Sie die folgende Importanweisung am Anfang der Java-Quelldateien ein(wo IronPDF verwendet werden soll) um diese Komponenten für den Quellcode der Anwendung zugänglich zu machen.

// Import statement for IronPDF for Java
import com.ironsoftware.ironpdf.*;
JAVA

2.2. Einstellen des Lizenzschlüssels (optional)

IronPDF for Java ist kostenlos zu verwenden. Für kostenlose Benutzer werden PDF-Dokumente mit einem Wasserzeichen im Hintergrund versehen(wie in der folgenden Abbildung gezeigt).

Erwerben Sie einen Lizenzschlüssel unter ironpdf.com/java/licensing/, um PDF-Dokumente ohne Wasserzeichen zu konvertieren und zu bearbeiten.

Um IronPDF zur Erzeugung von PDFs ohne Wasserzeichen zu verwenden, muss die Bibliothek einen gültigen Lizenzschlüssel verwenden. Die folgende Codezeile konfiguriert die Bibliothek mit einem Lizenzschlüssel.

// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
JAVA

Der Lizenzschlüssel sollte vor der Erstellung von PDF-Dateien oder der Anpassung von Dateiinhalten festgelegt werden. Wir empfehlen, die Methode setLicenseKey vor allen anderen Codezeilen aufzurufen.

Kaufen Sie einen Lizenzschlüssel von unserer Lizenzierungsseite, oder kontaktieren Sie uns, umeinen kostenlosen Testlizenzschlüssel erhalten.

2.3 Festlegen des Speicherorts der Protokolldatei (optional)

Standardmäßig(und unter der Annahme, dass ein SLF4J-Anbieter installiert ist)erzeugt IronPDF Protokollmeldungen in einer Textdatei namens IronPdfEngine.log, die sich im Stammverzeichnis der Java-Anwendung befindet.

Um einen anderen Namen und Speicherort für die Protokolldatei festzulegen, verwenden Sie die Methode Settings.setLogPath:

// Set a log path
Settings.setLogPath(Paths.get("IronPdfEngine.log"));
JAVA

Bitte beachten: vor der Verwendung von PDF-Konvertierungs- und -Manipulationsmethoden muss "Settings.setLogPath" aufgerufen werden.

2.4. Erstellen einer PDF-Datei aus einem HTML-String

pdfDocument.renderHtmlAsPdf" wandelt eine Zeichenkette mit HTML-Inhalt in ein PDF-Dokument um.

Das folgende Codebeispiel verwendet ein einzelnes Headline-Element, um eine neue Datei zu erzeugen.

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
pdf.saveAs("htmlstring_to_pdf.pdf");
JAVA

Konvertieren Sie HTML-Auszeichnungen in PDF-Dateien mit dem PdfDocument.renderHtmlAsPdf. Mit dieser Methode können PDF-Dokumente mit allen gültigen W3C-konformen HTML- und CSS-Auszeichnungen erstellt werden.

renderHtmlAsPdf" verarbeitet alle HTML-, CSS- und JavaScript-Inhalte auf dieselbe Weise, wie es moderne, standardkonforme Browser können. Damit können Software-Ingenieure PDF-Dokumente erstellen, die genau so aussehen, wie sie in einem Webbrowser angezeigt werden.

Die Methode renderHtmlAsPdf kann auf Bilder, Stylesheets und Skripte zugreifen, die sich in Ordnern auf einem Computer oder auf einem Netzlaufwerk befinden. Das folgende Beispiel erzeugt ein PDF-Dokument aus HTML, das auf eine CSS-Datei und ein Bild in einem "Assets"-Ordner verweist:

String html = "<html><head><title>Hello world!</title><link rel='stylesheet' href='assets/style.css'></head><body><h1>Hello from IronPDF!</h1><a href='https://ironpdf.com/java/'><img src='assets/logo.png' /></a></body></html>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
pdf.saveAs("output.pdf");
JAVA

Das Ergebnis des obigen Codes ist in der folgenden Abbildung zu sehen.

PdfDocument.renderHtmlAsPdf kann alle Arten von Rich-Media-Elementen darstellen. Wenn es in Chrome angezeigt wird, dann renderHtmlAsPdf wird es wiedergeben!

Eine zweite(optional) argument für renderHtmlAsPdf ermöglicht es Entwicklern, einen Basispfad anzugeben, von dem aus auf Web-Assets verwiesen wird. Dieser Pfad kann ein Verzeichnis im lokalen Dateisystem oder sogar ein URL-Pfad sein.

Erfahren Sie mehr über die Methode renderHtmlAsPdf vondieses Codebeispieloder lesen Sie darüber in derAPI-Referenz seiten.

2.5. Erstellen einer PDF-Datei aus einer URL

Entwickler können Online-Webseiten mit der IronPDF-Methode PdfDocument.renderUrlAsPdf in PDF-Dokumente umwandeln.

Im nächsten Beispiel wird der Wikipedia-Artikel in PDF-Inhalte umgewandelt.

PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
JAVA

Das generierte PDF-Dateiformat ist unten dargestellt.

Die IronPDF-Java-Bibliothek kann HTML-Inhalte konvertieren, die in online gehosteten Webseiten enthalten sind. Verwenden Sie die PdfDocument.renderUrlAsPdf methode, um dies zu erreichen.

Weitere Informationen zur Konvertierung von Webseiten in PDF-Inhalte finden Sie in dercode-Beispiel.

2.6. Erstellen einer PDF-Datei aus einer HTML-Datei

IronPDF kann auch ein HTML-Dokument, das auf einem lokalen Dateisystem gespeichert ist, direkt in das entsprechende PDF-Format umwandeln.

Das nächste Codebeispiel verwendet diese Rechnung als praktische Demonstration, wie gut IronPDF HTML-Dateien konvertieren kann.

Das HTML-Markup für die Rechnung wird hier der Einfachheit halber wiedergegeben:

<html>
<head>
    <meta charset="utf-8">
    <title>Invoice</title>
    <link rel="stylesheet" href="style.css">
    <link rel="license" href="https://www.opensource.org/licenses/mit-license/">
    <script src="script.js"></script>
</head>
<body>
<header>
    <h1>Invoice</h1>
    <address contenteditable>
        <p>Jonathan Neal</p>
        <p>101 E. Chapman Ave<br>Orange, CA 92866</p>
        <p>(800) 555-1234</p>
    </address>
    <span><img alt="" src="http://www.jonathantneal.com/examples/invoice/logo.png"><input type="file" accept="image/*"></span>
</header>
<article>
    <h1>Recipient</h1>
    <address contenteditable>
        <p>Some Company<br>c/o Some Guy</p>
    </address>
    <table class="meta">
        <tr>
            <th><span contenteditable>Invoice #</span></th>
            <td><span contenteditable>101138</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Date</span></th>
            <td><span contenteditable>January 1, 2012</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Due</span></th>
            <td><span id="prefix" contenteditable>$</span><span>600.00</span></td>
        </tr>
    </table>
    <table class="inventory">
        <thead>
        <tr>
            <th><span contenteditable>Item</span></th>
            <th><span contenteditable>Description</span></th>
            <th><span contenteditable>Rate</span></th>
            <th><span contenteditable>Quantity</span></th>
            <th><span contenteditable>Price</span></th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td><a class="cut">-</a><span contenteditable>Front End Consultation</span></td>
            <td><span contenteditable>Experience Review</span></td>
            <td><span data-prefix>$</span><span contenteditable>150.00</span></td>
            <td><span contenteditable>4</span></td>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        </tbody>
    </table>
    <a class="add">+</a>
    <table class="balance">
        <tr>
            <th><span contenteditable>Total</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Paid</span></th>
            <td><span data-prefix>$</span><span contenteditable>0.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Balance Due</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
    </table>
</article>
<aside>
    <h1><span contenteditable>Additional Notes</span></h1>
    <div contenteditable>
        <p>A finance charge of 1.5% will be made on unpaid balances after 30 days.</p>
    </div>
</aside>
</body>
</html>
<html>
<head>
    <meta charset="utf-8">
    <title>Invoice</title>
    <link rel="stylesheet" href="style.css">
    <link rel="license" href="https://www.opensource.org/licenses/mit-license/">
    <script src="script.js"></script>
</head>
<body>
<header>
    <h1>Invoice</h1>
    <address contenteditable>
        <p>Jonathan Neal</p>
        <p>101 E. Chapman Ave<br>Orange, CA 92866</p>
        <p>(800) 555-1234</p>
    </address>
    <span><img alt="" src="http://www.jonathantneal.com/examples/invoice/logo.png"><input type="file" accept="image/*"></span>
</header>
<article>
    <h1>Recipient</h1>
    <address contenteditable>
        <p>Some Company<br>c/o Some Guy</p>
    </address>
    <table class="meta">
        <tr>
            <th><span contenteditable>Invoice #</span></th>
            <td><span contenteditable>101138</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Date</span></th>
            <td><span contenteditable>January 1, 2012</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Due</span></th>
            <td><span id="prefix" contenteditable>$</span><span>600.00</span></td>
        </tr>
    </table>
    <table class="inventory">
        <thead>
        <tr>
            <th><span contenteditable>Item</span></th>
            <th><span contenteditable>Description</span></th>
            <th><span contenteditable>Rate</span></th>
            <th><span contenteditable>Quantity</span></th>
            <th><span contenteditable>Price</span></th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td><a class="cut">-</a><span contenteditable>Front End Consultation</span></td>
            <td><span contenteditable>Experience Review</span></td>
            <td><span data-prefix>$</span><span contenteditable>150.00</span></td>
            <td><span contenteditable>4</span></td>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        </tbody>
    </table>
    <a class="add">+</a>
    <table class="balance">
        <tr>
            <th><span contenteditable>Total</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Paid</span></th>
            <td><span data-prefix>$</span><span contenteditable>0.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Balance Due</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
    </table>
</article>
<aside>
    <h1><span contenteditable>Additional Notes</span></h1>
    <div contenteditable>
        <p>A finance charge of 1.5% will be made on unpaid balances after 30 days.</p>
    </div>
</aside>
</body>
</html>
HTML

Angenommen, die HTML-Datei wurde zusammen mit der CSS-Datei und der JavaScript-Datei in einem Ordner namens invoices gespeichert. Wir können IronPDF verwenden, um die HTML-Datei wie folgt zu konvertieren:

PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
JAVA

Wie bei den Beispielen für die Konvertierung von HTML-Strings in PDF löst IronPDF alle relativen URLs in einem HTML-Dokument korrekt in ihre korrekten Pfade im Dateisystem auf. Das Ergebnis ist eine PDF-Datei, die die visuellen Einflüsse, die die referenzierten Stylesheets und Skripte normalerweise auf einer Webseite haben, perfekt wiedergibt.

3. Weitere Lektüre

Wir haben nur die Oberfläche von IronPDFs HTML-zu-PDF-Rendering-Fähigkeiten angekratzt.

Vertiefen Sie Ihr Wissen über die Verwendung des HTML-zu-PDF-Konverters für die Java-Entwicklung mit den Codebeispielen, die Sie in unseremCode-Beispiele abschnitt.

  1. Lesen Siedieses Codebeispiel um zu erfahren, wie Sie das Erscheinungsbild eines PDF-Dokuments während des Konvertierungsprozesses anpassen können.
  2. Erzeugen von PDF-Dateien mitbenutzerdefinierte Kopf- und Fußzeilen, randgrößen, seitenabmessungen, wasserzeichenund vieles mehr.
  3. PDF-Inhalt extrahieren(text undbilder) aus Dokumenten,dateigrößen optimierenundpDFs programmatisch drucken

    Studieren Sie dieIronPDF for Java API-Referenz seite der Klasse PdfDocument für eine noch bessere Kontrolle über die Umwandlung von HTML in PDF.

Das HTML-zu-PDF-Tutorial-Video ansehen


Tutorial Schnellzugriff

Dieses Tutorial als Java-Quellcode herunterladen

Der vollständige HTML-zu-PDF-Java-Quellcode für dieses Tutorial steht als gezipptes IntelliJ-Projekt zum kostenlosen Herunterladen bereit.

Herunterladen

Erkunden Sie dieses Tutorial auf GitHub

Der Quellcode für dieses Projekt ist auf GitHub verfügbar.

Verwenden Sie diesen Code als einfache Möglichkeit, in wenigen Minuten mit der Arbeit zu beginnen. Das Projekt wird als IntellJ IDEA-Projekt gespeichert, kann aber auch in andere gängige Java-IDEs importiert werden.

Java HTML zu PDF

Ansicht der API-Referenz

Entdecken Sie die API-Referenz für IronPDF, die Details zu allen Funktionen, Namespaces, Klassen, Methoden, Feldern und Enums von IronPDF enthält.

Ansicht der API-Referenz