Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
PDF (EN ANGLAIS)(Format de document portable) sont largement utilisés pour partager et conserver des documents dans un format cohérent sur différentes plateformes. Dans cet article, nous allons voir comment générer des fichiers PDF en C# à l'aide de la bibliothèque wkhtmltopdf. Il s'agit d'un outil de ligne de commande open source, qui est utilisé pour convertir le contenu HTML en fichiers PDF. En exploitant la puissance de cette bibliothèque, nous pouvons créer par programme des documents PDF à partir de contenu HTML dans nos applications C++.
wkhtmltopdf est un outil en ligne de commande et un moteur de rendu open-source qui convertit des pages web HTML ou du contenu HTML en documents PDF. Il utilise le moteur de rendu WebKit pour analyser et rendre les fichiers HTML, CSS et JavaScript, puis génère un fichier PDF sur la base du contenu rendu.
"wkhtmltopdf C++ Library"(également connu sous le nom de "wkhtmltopdf C API"). Cette bibliothèque fournit une interface C++ à l'outil en ligne de commande wkhtmltopdf
, vous permettant de créer des fichiers PDF à partir de contenu HTML directement dans vos applications C++. Découvrons étape par étape le processus de conversion de HTML en PDF en C# à l'aide de la bibliothèque Wkhtmltopdf.
Pour créer des fichiers PDF en C#, nous devons mettre en place les éléments suivants :
Un compilateur C++ tel que GCC ou Clang installé sur votre système. Vous pouvez utiliser n'importe quel IDE qui prend en charge la programmation C#.
la bibliothèque wkhtmltopdf** a été téléchargée et installée. Vous pouvez télécharger la dernière version à partir du site officielwkhtmltopdf site web et installez-le conformément aux instructions de votre système d'exploitation.
Créez un projet dans Code::Blocks et suivez les étapes ci-dessous pour lier le dossier et le fichier de la bibliothèque. Si vous utilisez un autre IDE, les options peuvent être différentes, mais vous devez référencer la bibliothèque téléchargée dans votre projet pour que cela fonctionne.
Pour que Code::Blocks puisse trouver les fichiers d'en-tête nécessaires, nous devons configurer les répertoires de recherche.
Cliquez sur le menu "Projet" dans la barre de menu et sélectionnez "Options de construction". Veillez à sélectionner "Debug".
Dans la boîte de dialogue "Build options", sélectionnez l'onglet "Search directories".
Sous l'onglet "Compilateur", cliquez sur le bouton "Ajouter".
Naviguez jusqu'au répertoire où se trouvent les fichiers d'en-tête wkhtmltox(par exemple, C:\NProgram Files\NWkhtmltopdf\Ninclude)et le sélectionner.
Enfin, cliquez sur "OK" pour fermer la boîte de dialogue.
Pour établir un lien avec la bibliothèque wkhtmltox, procédez comme suit :
Cliquez à nouveau sur le menu "Projet" dans la barre de menu et sélectionnez "Options de construction". Veillez à sélectionner "Debug".
Dans la boîte de dialogue "Build options", sélectionnez l'onglet "Linker settings".
Sous l'onglet "Bibliothèques de liens", cliquez sur le bouton "Ajouter".
Naviguez jusqu'au répertoire où se trouvent les fichiers de la bibliothèque wkhtmltox(par exemple, C:\NProgram Files\NWkhtmltopdf\lib (fichiers de programmes))et sélectionnez le fichier de bibliothèque approprié.
Cliquez sur "Ouvrir" pour ajouter la bibliothèque à votre projet.
Enfin, cliquez sur "OK" pour fermer la boîte de dialogue.
Pour commencer, nous allons d'abord inclure les fichiers d'en-tête nécessaires pour utiliser les fonctionnalités de la bibliothèque wkhtmltopdf dans notre programme C++. Inclure les fichiers d'en-tête suivants au début du fichier de code source main.cpp :
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
Si vous ne travaillez pas avec l'interface graphique, vous devez la désactiver pour éviter les erreurs. Le code est le suivant :
wkhtmltopdf_init(false);
wkhtmltopdf_init(false);
Ensuite, nous devons initialiser les pointeurs de paramètres globaux et d'objets, puis le convertisseur wkhtmltopdf
.
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
Créons maintenant une chaîne HTML pour compléter le contenu de notre document PDF nouvellement créé. Le code est le suivant :
string htmlString = "<html><body><h1>Create a PDF in C++ using WKHTMLTOPDF Library</h1></body></html>";
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
string htmlString = "<html><body><h1>Create a PDF in C++ using WKHTMLTOPDF Library</h1></body></html>";
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
Wkhtmltopdf fournit une méthode de conversion pour convertir le contenu HTML en PDF. Voici l'extrait de code :
wkhtmltopdf_convert(converter);
wkhtmltopdf_convert(converter);
Avec la fonction wkhtmltopdf_get_output
, nous pouvons obtenir les données PDF sous la forme d'un flux de mémoire tampon. Il renvoie également la longueur du PDF. L'exemple suivant permet d'effectuer cette tâche :
const unsigned char* pdfData;
const int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
const unsigned char* pdfData;
const int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
Le pointeur pdfData
contient maintenant le flux de caractères provenant de wkhtmltopdf_converter
. Pour enregistrer un fichier PDF, nous devons d'abord spécifier le chemin d'accès au fichier où nous voulons enregistrer le PDF. Ensuite, en utilisant le flux du fichier de sortie, nous ouvrons le fichier en mode binaire et nous y écrivons les pdfData
en utilisant la fonction reinterpret_cast
. Enfin, nous fermons le dossier.
const char* outputPath = "file.pdf";
ofstream outputFile(outputPath, ios::binary);
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
const char* outputPath = "file.pdf";
ofstream outputFile(outputPath, ios::binary);
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
Après avoir créé avec succès un fichier PDF, il est essentiel de nettoyer les ressources allouées par Wkhtmltopdf, sous peine de provoquer une fuite de mémoire.
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
wkhtmltopdf_deinit();
cout << "PDF created successfully." << endl;
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
wkhtmltopdf_deinit();
cout << "PDF created successfully." << endl;
Maintenant, construisez le projet et exécutez le code en utilisant la touche F9. Le résultat est généré et enregistré dans le dossier du projet. Le PDF résultant est le suivant :
IronPDF est une bibliothèque PDF .NET C# qui permet aux développeurs de créer des documents PDF à partir de HTML sans effort. Il fournit une API intuitive qui simplifie le processus de création de fichiers PDF à partir de HTML.
IronPDF est robuste et polyvalent lorsqu'il s'agit de travailler avec des PDF. Il crée non seulement un PDF à partir de simples documents HTML, mais aussi des pages web complexes avec un style CSS, des interactions JavaScript et même un contenu dynamique. De plus, vous pouvez développer différents convertisseurs PDF avec un accès rapide à ses méthodes de conversion.
Voici un exemple de code pourcréer des PDF avec IronPDF en utilisantConversion d'une chaîne HTML en PDF:
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
Nous créons une instance de ChromePdfRenderer
pour rendre le contenu HTML au format PDF. Nous appelons la méthode RenderHtmlAsPdf
sur l'objet renderer
et lui transmettons la chaîne HTML. Le document PDF est ainsi généré, puis sauvegardé à l'aide de la méthode SaveAs
.
Pour plus de détails sur la façon decréer un PDF à partir de diverses ressources avec IronPDF, veuillez consulter le site suivantExemples de code IronPDF page.
Dans cet article, nous avons exploré la génération de PDF en C++ à l'aide de la bibliothèque C++wkhtmltopdf, et nous avons également appris à utiliser IronPDF pour générer des documents PDF en C#.
Avec IronPDF, la génération de fichiers PDF à partir de contenu HTML devient une tâche simple dans les langages du Framework .NET. Ses nombreuses fonctionnalités en font un outil précieux pour les développeurs qui ont besoin de convertir des données sur la santéHTML vers PDF dans leurs projets C#. Qu'il s'agisse de générer des rapports, des factures ou tout autre document nécessitant une conversion précise de HTML en PDF, IronPDF est une solution fiable et efficace.
IronPDF est gratuit à des fins de développement, mais pour une utilisation commerciale, il doit faire l'objet d'une licence. Il fournit également uneessai gratuit pour un usage commercial afin de tester l'ensemble de ses fonctionnalités. Télécharger IronPDF et l'essayer par vous-même.
9 produits de l'API .NET pour vos documents de bureau