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.

  1. Créez une instance HtmlLoadOptions pour configurer la façon dont la source HTML est interprétée lors de l’importation.

  2. Définissez HtmlPageLayoutOption sur ScaleToPageWidth afin que le contenu HTML large soit adapté à la largeur de la page PDF cible au lieu d’être tronqué.

  3. Ouvrez le fichier HTML source en transmettant son chemin et les options de chargement configurées dans le constructeur Document.

  4. Enregistrez le Document gé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.

  1. Créez une instance HtmlLoadOptions pour les paramètres de conversion.

  2. Définissez HtmlMediaType sur Screen lorsque le code HTML doit être rendu avec des règles CSS destinées à l’affichage à l’écran plutôt qu’à l’impression.

  3. 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.

  4. Enregistrez le Document ré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.

  1. Créez une instance HtmlLoadOptions avant d’ouvrir le fichier HTML.

  2. Configurez setPriorityCssPageRule(false) lorsque les autres paramètres de mise en page doivent avoir priorité sur les déclarations CSS @page dans le balisage source.

  3. Chargez le contenu HTML dans un Document avec les options configurées afin que la mise en page soit résolue lors de l’importation.

  4. 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.

  1. Créez une instance HtmlLoadOptions pour la configuration de l’importation HTML.

  2. Activez setEmbedFonts(true) pour que les polices résolues lors du rendu HTML soient stockées dans le PDF de sortie.

  3. Ouvrez la source HTML avec ces options de chargement pour conserver la typographie originale disponible dans le document final.

  4. Enregistrez le Document au 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.

  1. Créez une instance HtmlLoadOptions pour les paramètres de conversion.

  2. Activez setRenderToSinglePage(true) pour que le code HTML importé soit disposé sur une seule page PDF plutôt que réparti sur plusieurs pages.

  3. Ouvrez le HTML source avec les options de chargement configurées et laissez Aspose.PDF créer la mise en page dans un Document.

  4. 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.

  1. Créez une instance HtmlLoadOptions avec 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.

  2. Ouvrez le fichier HTML contenant le balisage SVG intégré en transmettant le chemin source et les options de chargement dans le constructeur Document.

  3. Laissez Aspose.PDF restituer le DOM HTML avec les éléments SVG intégrés dans le contenu de la page PDF.

  4. 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.

  1. Créez une instance HtmlLoadOptions avec 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.

  2. Convertissez la chaîne URL en un objet URL et ouvrez son flux d’entrée pour récupérer le contenu HTML en direct.

  3. 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.

  4. 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.

  1. Créez une instance MhtLoadOptions pour indiquer à Aspose.PDF de charger la source en tant que contenu HTML MIME.

  2. Ouvrez le fichier .mht ou .mhtml en passant son chemin et les options de chargement MHTML dans le constructeur Document.

  3. Laissez Aspose.PDF analyser le contenu HTML archivé et ses ressources intégrées dans le modèle de document PDF.

  4. 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);
}