Fr

KNOWLEDGEBASE

Générer un PDF à partir de HTML en utilisant Java [étape par étape]

Cet article vous montrera comment générer des PDF à partir de HTML en utilisant Java. Vous pouvez facilement manipuler et afficher des documents HTML, y compris des styles CSS.

Aspose.HTML pour Java permet à vos applications d’effectuer un large éventail de tâches de manipulation HTML et prend en charge les fonctionnalités HTML5, CSS3, SVG et HTML Canvas. Avec notre API, vous pouvez charger des pages Web, analyser, modifier le contenu, enregistrer et convertir des pages. Formats populaires que vous pouvez manipuler : XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP et autres.

PDF à partir de HTML en Java

** Riche ensemble de fonctionnalités **

Aspose.HTML pour Java vous offre de nombreuses fonctionnalités dans de nombreux domaines différents :

• Modèle d’objet de document - vous permet de modifier, de créer et de supprimer des nœuds, et est construit conformément à la documentation HTML officielle. • Convertisseurs hautes performances. Pour plus d’informations sur les formats de fichiers pris en charge, visitez Features List ou [Converting]( https://docs.aspose.com /html/java/converting-between-formats/). • Traitement CSS, JavaScript et autres formats intégrés.

Générer un PDF à partir de HTML avec une seule ligne de code Java

Vous pouvez facilement générer un PDF à partir de HTML dans votre application Java avec littéralement une seule ligne de code en utilisant les méthodes statiques du [Convertisseur]( https://reference.aspose.com/html/java/com.aspose.html.converters/ convertisseur) classe.

// 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"
);

Générer un PDF à partir de HTML ligne par ligne en utilisant Java

Voici les étapes pour générer un PDF à partir de HTML ligne par ligne :

  1. À l’aide de la classe HtmlDocument, chargez d’abord le fichier HTML.
  2. Après cela, créez une instance de PdfSaveOptions.
  3. Avec [ConvertHTML()]( https://reference.aspose.com/html/java/com.aspose.html.converters/Converter#convertHTML-com.aspose.HTMLDocument-com.aspose.saving.PdfSaveOptions-java .lang.String-) de la classe Converter enregistre le HTML en tant que fichier PDF. Vous devrez transmettre le HTMLDocument, [PdfSaveOptions]( https://reference.aspose.com/html/java /com.aspose.html.saving/PdfSaveOptions) et le chemin du fichier de sortie vers la méthode ConvertHTML() pour générer un PDF à partir de HTML.
// 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();
    }
}

Personnalisez le processus de rendu avec l’option Enregistrer

Vous pouvez personnaliser le processus de rendu avec les PdfSaveOptions et spécifier la [taille de la page](https://reference .aspose.com/html/java/com.aspose.html.rendering/RenderingOptions#getPageSetup–), [autorisations de fichier]( https://reference.aspose.com/html/java/com.aspose.html.rendering .pdf.encryption/pdfencryptioninfo), marges, [type de média CSS](https:/ /reference.aspose.com/html/java/com.aspose.html.rendering/MediaType), et bien d’autres. Dans l’exemple ci-dessous, vous pouvez voir comment utiliser PdfSaveOptions et créer un fichier PDF avec une taille de page et une couleur d’arrière-plan personnalisées :

// 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"
);

Dans l’article Fine-Tuning Converters, vous pouvez en savoir plus sur [PdfSaveOptions](https:/ /reference.aspose.com/html/java/com.aspose.html.saving/pdfsaveoptions).

Fournisseur de flux de sortie

Vous pouvez implémenter l’interface MemoryStreamProvider si vous souhaitez enregistrer des fichiers dans un stockage distant, comme le cloud ou une base de données. L’interface MemoryStreamProvider est conçue comme un objet de rappel pour créer un flux et libérer le premier flux créé après le rendu de la page ou du document.

Nous allons vous montrer un exemple d’utilisation de MemoryStreamProvider ci-dessous :

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 fournit un support technique pour tous ses produits, depuis articles de base de connaissances, documentation, [blog](https: //blog.aspose.com/), exemples de code et demos, à Assistance gratuite ainsi qu’un [support payant] hautement disponible ( https://helpdesk.aspose.com/). Si vous avez besoin d’experts qui travailleront avec vous et vous aideront à implémenter Aspose.HTML pour Java en fonction de vos besoins, la meilleure solution est notre Conseil payant.