Wissensdatenbank

PDF aus HTML mit Java generieren [Schritt für Schritt]

Dieser Artikel zeigt Ihnen, wie Sie PDFs aus HTML mit Java erzeugen. Sie können HTML‑Dokumente inklusive CSS‑Stilen einfach manipulieren und rendern.

Aspose.HTML für Java ermöglicht Ihren Anwendungen, ein breites Spektrum an HTML‑Manipulationsaufgaben auszuführen und unterstützt HTML5, CSS3, SVG sowie HTML‑Canvas‑Funktionen. Mit unserer API können Sie Webseiten laden, den Inhalt analysieren, bearbeiten und Seiten speichern sowie konvertieren.
Beliebte Formate, die Sie manipulieren können: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP und weitere.

PDF aus HTML in Java

Umfangreicher Funktionsumfang

Aspose.HTML für Java bietet Ihnen zahlreiche Funktionen in vielen Bereichen:

• Document Object Model – ermöglicht das Bearbeiten, Erstellen und Entfernen von Knoten und ist gemäß der offiziellen HTML‑Dokumentation aufgebaut.
• Hochleistungs‑Konverter. Weitere Informationen zu unterstützten Dateiformaten finden Sie in der Funktionsliste oder den Konvertierungs Artikeln.
• Verarbeitung von CSS, JavaScript und anderen integrierten Formaten.

PDF aus HTML mit einer einzigen Java‑Codezeile generieren

Sie können PDF aus HTML in Ihrer Java‑Anwendung mit buchstäblich einer einzigen Codezeile erzeugen, indem Sie die statischen Methoden der Converter -Klasse verwenden.

// Invoke the ConvertHTML method to convert the HTML to PDF.
com.aspose.html.converters.Converter.convertHTML(
        "<span>Hello World!!</span>",
        ".",
        new com.aspose.html.saving.PdfSaveOptions(),
        "output.pdf"
);

PDF aus HTML zeilenweise mit Java generieren

Im Folgenden finden Sie die Schritte, um PDF aus HTML zeilenweise zu erzeugen:

  1. Laden Sie zunächst mit der HtmlDocument -Klasse die HTML‑Datei.
  2. Erstellen Sie anschließend eine Instanz von PdfSaveOptions .
  3. Verwenden Sie die ConvertHTML() ‑Methode der Converter -Klasse, um HTML als PDF‑Datei zu speichern. Sie müssen das HTMLDocument , die PdfSaveOptions und den Ausgabepfad an die ConvertHTML()-Methode übergeben, um PDF aus HTML zu erzeugen.
// Prepare an HTML code and save it to the file.
String code = "<span>Hello World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
    fileWriter.write(code);
}

// Initialize an HTML document from the file
com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("document.html");
try {
    // Initialize PdfSaveOptions
    com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();

    // Convert HTML to PDF
    com.aspose.html.converters.Converter.convertHTML(
            document,
            options,
            "output.pdf"
    );
} finally {
    if (document != null) {
        document.dispose();
    }
}

Den Rendering‑Prozess mit den Speicheroptionen anpassen

Sie können den Rendering‑Prozess mit den PdfSaveOptions anpassen und dabei die Seitengröße , Dateiberechtigungen , Ränder , den CSS‑Medientyp sowie vieles mehr festlegen. Im nachfolgenden Beispiel sehen Sie, wie Sie PdfSaveOptions verwenden, um eine PDF‑Datei mit benutzerdefinierter Seitengröße und Hintergrundfarbe zu erstellen:

// Prepare an HTML code and save it to the file
String code = "<span>Hello</span> <span>World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
    fileWriter.write(code);
}

// Set A5 as a page-size and change the background color to green
com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();
com.aspose.html.rendering.PageSetup pageSetup = new com.aspose.html.rendering.PageSetup();
com.aspose.html.drawing.Page anyPage = new com.aspose.html.drawing.Page();
anyPage.setSize(
        new com.aspose.html.drawing.Size(
                com.aspose.html.drawing.Length.fromInches(8.3f),
                com.aspose.html.drawing.Length.fromInches(5.8f)
        )
);
pageSetup.setAnyPage(anyPage);
options.setPageSetup(pageSetup);

options.setBackgroundColor(com.aspose.html.drawing.Color.getGreen());

// Convert HTML document to PDF
com.aspose.html.converters.Converter.convertHTML(
        "document.html",
        options,
        "output.pdf"
);

Im Artikel Feinabstimmung von Konvertern finden Sie weitere Informationen zu den PdfSaveOptions .

Ausgabe‑Stream‑Provider

Sie können das MemoryStreamProvider -Interface implementieren, wenn Sie Dateien in einem entfernten Speicher, etwa in der Cloud oder in einer Datenbank, ablegen möchten.
Das MemoryStreamProvider‑Interface dient als Callback‑Objekt, um einen Stream zu erstellen und den zuvor erstellten Stream nach dem Rendern der Seite oder des Dokuments wieder freizugeben.

Im Folgenden zeigen wir ein Beispiel für die Verwendung von MemoryStreamProvider:

package com.aspose.html.examples.java;

// For complete examples and data files, please go to https://github.com/aspose-html/Aspose.HTML-for-Java
public class MemoryStreamProvider implements java.io.Closeable {
    // List of InputStream objects created during the document rendering
    public java.util.List<java.io.InputStream> lStream = new java.util.ArrayList<>();

    @Override
    public void close() throws java.io.IOException {
        for (java.io.InputStream stream : lStream) {
            stream.close();
        }
    }
}
// Create an instance of MemoryStreamProvider
try (MemoryStreamProvider streamProvider = new MemoryStreamProvider()) {
    // Initialize an HTML document
    com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("<span>Hello World!!</span>", ".");
    try {
        // Convert HTML to PDF by using the MemoryStreamProvider
        com.aspose.html.converters.Converter.convertHTML(
                document,
                new com.aspose.html.saving.PdfSaveOptions(),
                streamProvider.lStream
        );

        // Get access to the memory stream that contains the result data
        java.io.InputStream inputStream = streamProvider.lStream.stream().findFirst().get();

        // Flush the result data to the output file
        try (java.io.FileOutputStream fileOutputStream = new java.io.FileOutputStream("output.pdf")) {
            byte[] buffer = new byte[inputStream.available()];
            inputStream.read(buffer);
            fileOutputStream.write(buffer);
        }
    } finally {
        if (document != null) {
            document.dispose();
        }
    }
}

Aspose bietet technischen Support für alle seine Produkte, einschließlich Wissensdatenbank‑Artikel , Dokumentation , Blog , Code‑Beispiele und Demos , sowie Kostenlosen Support und hochverfügbaren Bezahlten Support .
Wenn Sie Experten benötigen, die gemeinsam mit Ihnen arbeiten und Ihnen bei der Implementierung von Aspose.HTML für Java nach Ihren Anforderungen helfen, ist unsere Bezahlte Beratung die beste Lösung.