Cet article vous montrera comment générer des PDF à partir de HTML en utilisant Java. Vous pouvez facilement manipuler et rendre des documents HTML incluant les styles CSS.
Aspose.HTML for Java
permet à vos applications d’effectuer un large éventail de tâches de manipulation HTML et prend en charge HTML5, CSS3, SVG et les fonctionnalités du Canvas HTML. Avec notre API, vous pouvez charger des pages Web, analyser, modifier le contenu, puis enregistrer et convertir les pages.
Formats populaires que vous pouvez manipuler : XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP, et d’autres.
PDF à partir de HTML en Java
Ensemble complet de fonctionnalités
Aspose.HTML for Java vous offre de nombreuses fonctionnalités dans différents domaines :
• Modèle d’objet de document – vous permet de modifier, créer et supprimer des nœuds, et est construit selon la documentation officielle HTML.
• Convertisseurs haute performance. Pour plus d’informations sur les formats de fichiers pris en charge, consultez la Liste des fonctionnalités
ou les articles Conversion
.
• Traitement du CSS, du JavaScript et d’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 de la classe Converter
.
// 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 avec Java
Voici les étapes pour générer un PDF à partir de HTML ligne par ligne :
- Utilisez la classe HtmlDocument
pour d’abord charger le fichier HTML.
- Ensuite, créez une instance de PdfSaveOptions
.
- Avec la méthode ConvertHTML()
de la classe Converter
, enregistrez le HTML sous forme de fichier PDF. Vous devez fournir le HTMLDocument
, le PdfSaveOptions
et le chemin du fichier de sortie à la méthode ConvertHTML() pour générer le PDF à partir du 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();
}
}
Personnaliser le processus de rendu avec l’option Save
Vous pouvez personnaliser le processus de rendu avec les PdfSaveOptions
, et spécifier la taille de page
, les permissions de fichier
, les marges
, le type de média CSS
, et bien plus encore. Dans l’exemple ci‑dessous, vous voyez comment utiliser PdfSaveOptions pour créer un fichier PDF avec une taille de page personnalisée et une couleur d’arrière‑plan verte :
// 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 trouverez davantage d’informations sur les PdfSaveOptions
.
Fournisseur de flux de sortie
Vous pouvez implémenter l’interface MemoryStreamProvider
si vous souhaitez enregistrer des fichiers dans un stockage distant, tel que 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 flux créé tôt après le rendu de la page ou du document.
Nous vous montrons 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 une assistance technique pour tous ses produits, depuis les articles de la base de connaissances
, la documentation
, le blog
, les exemples de code
, et les démos
, jusqu’au Support gratuit
ainsi qu’un Support payant
.
Si vous avez besoin d’experts qui travailleront avec vous et vous aideront à implémenter Aspose.HTML for Java selon vos besoins, la meilleure solution est notre Consultation payante
.