Conversion PDF en HTML

Le PDF (Portable Document Format) est l’un des formats de document largement utilisés pour le partage de données et d’informations multiplateforme. L’une de ses fonctionnalités uniques inclut le fait que la fidélité d’un document reste intacte lors de la visualisation sur n’importe quelle plate-forme utilisant l’application conformément aux spécifications Adobe. En outre, le HTML (HyperText Markup Language) est également un format de fichier de premier plan pour le développement de pages Web et la plupart des navigateurs Web prennent en charge ce format. Cependant, le format PDF est largement accepté car il peut être facilement visualisé sur n’importe quel appareil sans perdre le formatage du document. Par conséquent, dans cet article, nous allons discuter des étapes à suivre pour convertir le fichier HTML au format PDF à l’aide de l’API .NET.

API C# pour convertir HTML en PDF

Afin d’effectuer l’opération de conversion, nous devons d’abord installer Aspose.PDF pour .NET sur le système. L’API est disponible sur la bibliothèque NuGet. Veuillez exécuter la commande suivante sur la console du gestionnaire de packages pour l’installer:

 Install-Package Aspose.Pdf

Une fois l’installation terminée, Aspose.PDF pour .NET apparaîtra sous le dossier Packages dans l’explorateur de solutions.

Convertir HTML en PDF en C#

Ci-dessous sont les étapes sur la façon dont vous pouvez convertir HTML en PDF en utilisant C#:

  1. Créez une instance de la classe License pour supprimer toutes les limitations lors du processus de génération de fichiers PDF
  2. Créez un objet de la classe HtmlLoadOptions tout en passant l’URL de base HTML d’entrée comme argument au constructeur HtmlLoadOptions(…).
  3. Initialiser l’objet de la classe Document et passer l’ objet HtmlLoadOptions comme argument à son constructeur.
  4. Appelez la méthode Save(…) de l’objet Document et rendez la sortie au format PDF.
// créer un objet pour initier la licence
Aspose.Pdf.License license = new Aspose.Pdf.License();

// fournir le chemin du fichier de licence
license.SetLicense("/Downloads/Conholdate.Total.NET.lic");

// créer une instance de la classe HtmlLoadOptions
Aspose.Pdf.HtmlLoadOptions htmlLoadOptions = new Aspose.Pdf.HtmlLoadOptions("User/Documents/");

// créer un objet Document et fournir le chemin du fichier HTML d'entrée
Aspose.Pdf.Document document = new Aspose.Pdf.Document("/Documents/input.html", htmlLoadOptions);

// enregistrer le résultat HTML au format PDF
document.Save("/Documents/Converted.pdf");

Incorporer des polices lors de la conversion

La plupart des pages HTML utilisent souvent des polices (par exemple, des polices de dossiers locaux, Google Fonts, etc.), et afin de préserver la mise en page des pages, les mêmes polices doivent être intégrées pendant le processus de rendu. Ainsi, afin de contrôler l’incorporation des polices dans le document résultant, nous devons utiliser la propriété IsEmbedFonts.

// Incorporer des polices lors de la conversion
HtmlLoadOptions options = new HtmlLoadOptions {IsEmbedFonts = true};

L’unité de mesure dans Aspose.PDF est Points. Et, nous savons que A3 mesure 297 × 420 millimètres ou 11,69 × 16,54 pouces. Ainsi, les dimensions sont arrondies à 842 × 1190 points. Dans l’extrait de code suivant, nous ajustons la taille de la page du document résultant en A3 et l’orientation de la page en Paysage.

// Définissez la taille de la page sur A3 et l'orientation de la page sur Paysage
HtmlLoadOptions options = new HtmlLoadOptions(url)
{
  PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
};

Convertir une page Web en PDF

Outre la conversion de fichiers HTML, nous pouvons également avoir besoin de convertir directement une page Web au format PDF. Donc, pour répondre à cette exigence, nous allons d’abord récupérer le contenu de la page Web distante à l’aide de l’instance HttpClient, créer un objet Stream, puis transmettre l’instance Stream à l’objet Document. La raison pour laquelle nous avons besoin du contenu dans Stream est que l’instance Document n’accepte que les fichiers ou les objets Steam.

La section suivante explique les étapes à suivre pour convertir une page Web en PDF à l’aide de C#

  1. Lire le contenu de la page à l’aide d’un objet HttpClient
  2. Instanciez l’objet HtmlLoadOptions et définissez l’URL de base
  3. Initialiser un objet Document et passer l’objet stream et l’instance HtmlLoadOptions comme arguments
  4. Appelez la méthode Save(String) de la classe Document pour générer la sortie
public static void ConvertHTMLtoPDFAdvanced_WebPage()
{
    const string url = "https://en.wikipedia.org/wiki/Aspose_API";
    
    // Définir le format de page A3 et l'orientation Paysage 
    HtmlLoadOptions options = new HtmlLoadOptions(url)
    {
        // Définir les dimensions de la page
        PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
    };
    
    // Créer une instance de l'objet Document
    Document pdfDocument= new Document(GetContentFromUrlAsStream(url), options);
    
    // Enregistrer la résultante
    pdfDocument.Save(_dataDir + "html_test.PDF");
}

private static Stream GetContentFromUrlAsStream(string url, ICredentials credentials = null)
{
    
    using (var handler = new HttpClientHandler { Credentials = credentials })
    using (var httpClient = new HttpClient(handler))
    {
        // récupérer et renvoyer les résultats dans l'instance de flux
        return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
    }
}

Rendu HTML complet sur une seule page

Lors de la conversion HTML en PDF, la longueur du fichier résultant est fonction de la longueur du contenu d’un document HTML d’entrée. Par conséquent, si le code HTML d’entrée est composé de plusieurs pages, le fichier résultant s’étendra également sur plusieurs pages. Cependant, nous pouvons limiter la sortie à une seule page PDF. Afin de répondre à cette exigence, la propriété IsRenderToSinglePage de la classe HtmlLoadOptions peut être utilisée.

Vous trouverez ci-dessous l’extrait de code permettant d’afficher le contenu HTML complet sur une seule page PDF à l’aide de C#.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Initialiser l'objet HtmlLoadOptions
HtmlLoadOptions options = new HtmlLoadOptions();

// Définir le rendu sur une propriété de page unique
options.IsRenderToSinglePage = true;

// Charger le contenu HTML de la source du document
Document pdfDocument= new Document("/Documents/HTMLToPDF.html", options);

// Enregistrez le fichier PDF résultant
pdfDocument.Save("/Documents/MyRenderContentToSamePage.pdf");

Obtenez une licence gratuite

Vous pouvez demander une licence temporaire gratuite pour essayer l’API sans aucune limitation d’évaluation.

Conclusion

Dans cet article, nous avons découvert l’approche de conversion des fichiers HTML au format PDF à l’aide de l’API .NET. Si vous souhaitez en savoir plus sur les autres fonctionnalités intéressantes offertes par Aspose.PDF pour .NET, veuillez visiter la page Fonctionnalités clés. Un ensemble complet d’exemples peut être trouvé sur le référentiel GitHub.

Quick Tip

Nous avons également développé des applications en ligne gratuites pour vérifier rapidement les fonctionnalités offertes par nos API. Vous pouvez donc consulter Aspose.PDF Conversion App pour transformer le fichier HTML au format PDF. En outre, vous pouvez également utiliser divers autres formats de fichiers et répondre à vos besoins de conversion.