Convertir HTML en PDF en Java
Aspose.PDF for Java peut convertir des fichiers HTML locaux, du contenu MHTML archivé et des pages Web en direct en documents PDF. Vous pouvez contrôler la conversion avec HtmlLoadOptions et MhtLoadOptions pour influencer la mise à l’échelle de la mise en page, la gestion des médias CSS, la priorité des règles de page, l’intégration des polices, la résolution des ressources et le rendu sur une seule page.
Convertir HTML en PDF
Utilisez cet exemple lorsqu’un fichier HTML local doit être converti directement en document PDF.
-
Créez une instance
HtmlLoadOptionspour configurer la façon dont la source HTML est interprétée lors de l’importation. -
Définissez
HtmlPageLayoutOptionsurScaleToPageWidthafin que le contenu HTML large soit adapté à la largeur de la page PDF cible au lieu d’être tronqué. -
Ouvrez le fichier HTML source en transmettant son chemin et les options de chargement configurées dans le constructeur
Document. -
Enregistrez le
Documentgénéré en tant que fichier PDF au chemin de sortie cible.
public static void convertHtmlToPdf(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setPageLayoutOption(HtmlPageLayoutOption.ScaleToPageWidth);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Convertir HTML en PDF avec les options de type de média
Utilisez cet exemple lorsque la gestion du type de média CSS doit être contrôlée lors de la conversion HTML.
-
Créez une instance
HtmlLoadOptionspour les paramètres de conversion. -
Définissez
HtmlMediaTypesurScreenlorsque le code HTML doit être rendu avec des règles CSS destinées à l’affichage à l’écran plutôt qu’à l’impression. -
Ouvrez le fichier HTML avec les options de chargement configurées afin que les styles définis par les requêtes de média CSS soient appliqués lors de la conversion.
-
Enregistrez le
Documentrésultant en tant que fichier PDF.
public static void convertHtmlToPdfMediaType(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setHtmlMediaType(HtmlMediaType.Screen);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Convertir du HTML en PDF avec la priorité des règles de page CSS
Utilisez cet exemple lorsque les règles CSS @page doivent influencer la mise en page finale du PDF.
-
Créez une instance
HtmlLoadOptionsavant d’ouvrir le fichier HTML. -
Configurez
setPriorityCssPageRule(false)lorsque les autres paramètres de mise en page doivent avoir priorité sur les déclarations CSS@pagedans le balisage source. -
Chargez le contenu HTML dans un
Documentavec les options configurées afin que la mise en page soit résolue lors de l’importation. -
Enregistrez le fichier PDF généré.
public static void convertHtmlToPdfPriorityCssPageRule(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setPriorityCssPageRule(false);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Convertir du HTML en PDF avec des polices intégrées
Utilisez cet exemple lorsque le PDF de sortie doit conserver les polices HTML en les incorporant.
-
Créez une instance
HtmlLoadOptionspour la configuration de l’importation HTML. -
Activez
setEmbedFonts(true)pour que les polices résolues lors du rendu HTML soient stockées dans le PDF de sortie. -
Ouvrez la source HTML avec ces options de chargement pour conserver la typographie originale disponible dans le document final.
-
Enregistrez le
Documentau format PDF avec les polices intégrées.
public static void convertHtmlToPdfEmbedFonts(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setEmbedFonts(true);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Afficher le contenu HTML sur une seule page PDF
Utilisez cet exemple lorsque le contenu HTML long doit être conservé sur une seule page PDF au lieu de s’étendre sur plusieurs pages.
-
Créez une instance
HtmlLoadOptionspour les paramètres de conversion. -
Activez
setRenderToSinglePage(true)pour que le code HTML importé soit disposé sur une seule page PDF plutôt que réparti sur plusieurs pages. -
Ouvrez le HTML source avec les options de chargement configurées et laissez Aspose.PDF créer la mise en page dans un
Document. -
Enregistrez le fichier PDF de sortie.
public static void convertHtmlToPdfRenderContentToSamePage(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions();
loadOptions.setRenderToSinglePage(true);
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Convertir du HTML contenant du SVG intégré en PDF
Utilisez cet exemple lorsque la source HTML inclut des données SVG intégrées qui doivent être restituées dans le PDF.
-
Créez une instance
HtmlLoadOptionsavec le répertoire parent du fichier HTML comme chemin de base afin que les ressources associées puissent être résolues de manière cohérente lors de la conversion. -
Ouvrez le fichier HTML contenant le balisage SVG intégré en transmettant le chemin source et les options de chargement dans le constructeur
Document. -
Laissez Aspose.PDF restituer le DOM HTML avec les éléments SVG intégrés dans le contenu de la page PDF.
-
Enregistrez le document PDF généré.
public static void convertHtmlToPdfWithSvgData(Path inputFile, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions(inputFile.getParent().toString());
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}
Convertir une page Web en PDF
Utilisez cet exemple lorsqu’une URL Web en direct doit être affichée et enregistrée en tant que document PDF.
-
Créez une instance
HtmlLoadOptionsavec l’URL cible afin que les ressources relatives telles que les feuilles de style et les images puissent être résolues par rapport à cette adresse. -
Convertissez la chaîne URL en un objet
URLet ouvrez son flux d’entrée pour récupérer le contenu HTML en direct. -
Créez un
Documentà partir du flux de réponse et des options de chargement configurées afin que la page téléchargée soit traitée avec l’URL de base correcte. -
Enregistrez la page Web rendue sous forme de fichier PDF et fermez automatiquement les ressources de flux avec try-with-resources.
public static void convertWebPageToPdf(String urlString, Path outputFile) {
HtmlLoadOptions loadOptions = new HtmlLoadOptions(urlString);
try {
URL url = URI.create(urlString).toURL();
try (InputStream inputStream = url.openStream()) {
try (Document document = new Document(inputStream, loadOptions)) {
document.save(outputFile.toString());
}
}
System.out.println(url + " converted into " + outputFile);
} catch (Exception e) {
e.printStackTrace();
}
}
Convertir MHTML en PDF
Utilisez cet exemple lorsqu’un fichier MHTML archivé doit être converti en document PDF.
-
Créez une instance
MhtLoadOptionspour indiquer à Aspose.PDF de charger la source en tant que contenu HTML MIME. -
Ouvrez le fichier
.mhtou.mhtmlen passant son chemin et les options de chargement MHTML dans le constructeurDocument. -
Laissez Aspose.PDF analyser le contenu HTML archivé et ses ressources intégrées dans le modèle de document PDF.
-
Enregistrez le fichier PDF généré.
public static void convertMhtmlToPdf(Path inputFile, Path outputFile) {
MhtLoadOptions loadOptions = new MhtLoadOptions();
try (Document document = new Document(inputFile.toString(), loadOptions)) {
document.save(outputFile.toString());
}
System.out.println(inputFile + " converted into " + outputFile);
}