using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// 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");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Html Agility Pack C# (Comment ça marche pour les développeurs)
Jordi Bardia
juin 4, 2024
Partager:
Introduction
La nécessité de gérer et de manipuler dynamiquement le contenu des documents est très répandue dans le monde du développement C#. Les développeurs s'appuient généralement sur des bibliothèques robustes pour automatiser des activités telles que la création de rapports PDF et l'extraction de données à partir de pages web. Cet article explore l'intégration directe d'IronPDF et de HTML Agility Pack en C# et fournit des exemples de code pour démontrer comment ces bibliothèques peuvent être utilisées pour créer sans effort des documents PDF et lire du texte HTML.
D'autre part, IronPDF est une bibliothèque .NET riche en fonctionnalités qui permet de travailler avec des fichiers PDF. IronPDF permet aux développeurs de générer dynamiquement des fichiers PDF à partir de contenu HTML, d'URL ou de données brutes, ce qui en fait un outil précieux pour la création de documents, l'établissement de rapports et la visualisation de données.
Pour rationaliser la génération de documents dans les applications .NET, nous verrons dans ce billet comment connecter IronPDF avec HTML Agility Pack. La combinaison de ces technologies permet aux programmeurs de travailler avec des systèmes distants, de générer des pages PDF dynamiques et d'obtenir des données via la connectivité réseau, tout en augmentant la productivité et l'évolutivité de leurs programmes.
Comment utiliser HtmlAgilityPack dans C# ;
Créer un nouveau projet C#.
Installer la bibliothèque HtmlAgilityPack.
Importer l'espace de noms. Créer un objet.
Importer des données à partir d'une URL et analyser le code HTML.
Obtenir les données requises et se débarrasser de l'objet.
Introduction à HtmlAgilityPack
Pack Agilité HTML est une bibliothèque d'analyse HTML polyvalente et puissante pour les développeurs .NET. Grâce à sa vaste collection d'API, les développeurs peuvent facilement naviguer, modifier et extraire des données de documents HTML. HTML Agility Pack permet à tous les développeurs, quel que soit leur niveau d'expérience, de travailler plus facilement avec le contenu HTML par le biais de programmes.
La capacité de HTML Agility Pack à gérer en douceur le HTML mal organisé ou défectueux est ce qui le rend unique. Il est parfait pour les opérations de scraping en ligne où la qualité du balisage HTML peut varier, car il utilise un algorithme d'analyse compréhensif qui peut analyser même le HTML le plus mal construit.
Caractéristiques de HtmlAgilityPack
Analyse HTML
Grâce aux puissantes fonctions d'analyse HTML offertes par HTML Agility Pack, les développeurs peuvent charger des documents HTML à partir de diverses sources, notamment des fichiers, des URL et des chaînes de caractères. Grâce à son approche indulgente de l'analyse syntaxique, il peut traiter avec élégance les formats HTML incorrects ou mal formatés, ce qui le rend adapté aux activités de "web scraping" où la qualité du balisage HTML peut varier.
Manipulation du DOM
Pour explorer, naviguer et travailler avec le modèle d'objet de document HTML(DOM) hAP offre une API conviviale. Les éléments HTML, les attributs et les nœuds de texte peuvent tous être ajoutés, supprimés ou modifiés de manière programmatique par les développeurs, ce qui permet une manipulation dynamique du contenu HTML.
Support XPath et LINQ
Pour le choix et l'interrogation des composants HTML, HTML Agility Pack prend en charge LINQ(Langue Requête intégrée) ainsi que les recherches syntaxiques XPath. Pour choisir des éléments dans un document HTML en fonction de leurs attributs, de leurs balises ou de leur hiérarchie, les requêtes d'expression XPath fournissent une syntaxe solide et facile à comprendre. Pour les développeurs habitués à travailler avec LINQ en C#, les requêtes LINQ offrent une syntaxe d'interrogation familière qui facilite l'intégration avec d'autres composants .NET.
Premiers pas avec HtmlAgilityPack
Mise en place de HtmlAgilityPack dans les projets C
La bibliothèque de classes de base HtmlAgility se présente sous la forme d'un paquetage unique, qui devrait être disponible dans NuGet en l'installant et qui peut être utilisé dans le projet C#. Il propose un analyseur HTML et des sélecteurs CSS à partir du document HTML et des URL HTML.
Mise en œuvre de HtmlAgilityPack dans la console et les formulaires Windows
De nombreux types d'applications C#, tels que les Windows Forms(WinForms) et la console Windows, mettre en œuvre HtmlAgilityPack. Bien que la mise en œuvre varie d'un cadre à l'autre, l'idée fondamentale reste constante.
Exemple C# de HtmlAgilityPack
L'un des outils les plus importants de la boîte à outils du développeur C# pour naviguer, traiter et travailler avec des documents HTML est le HTML Agility Pack(HAP). L'extraction de données à partir de pages HTML est facilitée par son API conviviale, qui fonctionne comme un arbre organisé d'éléments. Examinons un exemple de code simple pour montrer comment l'utiliser.
using HtmlAgilityPack;
// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
var doc = web.Load("https://ironpdf.com/");
// Select specific html nodes and parse html string
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");
// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
Console.WriteLine(node.InnerText);
}
Console.ReadKey();
using HtmlAgilityPack;
// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
var doc = web.Load("https://ironpdf.com/");
// Select specific html nodes and parse html string
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");
// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
Console.WriteLine(node.InnerText);
}
Console.ReadKey();
Imports HtmlAgilityPack
' Load HTML content from a file or URL
Private web As New HtmlWeb()
Private doc = web.Load("https://ironpdf.com/")
' Select specific html nodes and parse html string
Private nodes As HtmlNodeCollection = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']")
' Iterate through selected nodes and extract content
For Each node As HtmlNode In nodes
Console.WriteLine(node.InnerText)
Next node
Console.ReadKey()
Dans cet exemple, nous chargeons du matériel de nœuds HTML à partir d'une URL à l'aide de HTML Agility Pack. Le HTML est ensuite chargé dans la var doc pour être analysé et manipulé. Pour extraire le contenu, le programme identifie d'abord le nœud racine du document HTML, puis cible spécifiquement les nœuds du document à l'aide de requêtes XPath. Dans le code ci-dessus, nous sélectionnons spécifiquement les éléments div de la classe product-homepage-header dans la chaîne de données HTML, puis le texte intérieur de chaque nœud sélectionné est imprimé dans la console.
Opérations HtmlAgilityPack
Transformation HTML
Les développeurs peuvent effectuer plusieurs transformations et manipulations de textes HTML à l'aide du HTML Agility Pack. Cela couvre des opérations telles que l'ajout, la suppression ou la modification de nœuds de texte, d'éléments et d'attributs, ainsi que la réorganisation de la hiérarchie DOM du document HTML.
Extensibilité
HAP étant conçu pour être extensible, les programmeurs peuvent ajouter de nouvelles caractéristiques et de nouveaux comportements afin d'accroître sa fonctionnalité. En utilisant l'API fournie, les développeurs peuvent concevoir leurs propres analyseurs HTML, filtres ou manipulateurs pour adapter HAP à leurs besoins et cas d'utilisation uniques.
Performance et efficacité
Les algorithmes et les structures de données de HTML Agility Pack, conçus pour la vitesse et l'efficacité, permettent de traiter efficacement les textes HTML volumineux. Il garantit une analyse et une manipulation rapides et réactives du contenu HTML en réduisant l'utilisation de la mémoire et les frais généraux de traitement.
Intégration de HtmlAgilityPack avec IronPDF
Utilisation d'IronPDF avec HtmlAgilityPack
Les possibilités de gestion des documents et de création de rapports sont infinies lorsque les logiciels HTML Agility Pack etIronPDF pour la conversion PDF sont combinés. Grâce à l'utilisation de HTML Agility Pack pour l'analyse syntaxique du HTML et de laDocumentation IronPDF pour la conversion PDF, les développeurs peuvent automatiser sans effort la création de documents PDF à partir de matériel dynamique en ligne.
Installer IronPDF
Lancez le projet Visual Studio.
Sélectionnez "Outils" > "NuGet Package Manager" > "Console du gestionnaire de paquets".
Saisissez cette commande dans la console du gestionnaire de paquets :
Install-Package IronPdf
Vous pouvez également utiliser NuGet Package Manager for Solutions pour installer IronPDF.
Les résultats de la recherche du paquet IronPDF peuvent être parcourus et choisis, puis le bouton "Installer" peut être cliqué. Visual Studio se chargera de l'installation et du téléchargement pour vous.
Le paquetage IronPDF et toutes les dépendances nécessaires à votre projet seront installés par NuGet.
IronPDF peut être utilisé pour votre projet après l'installation.
Installation via le site Web de NuGet
Pour en savoir plus sur les fonctionnalités, la compatibilité et les autres choix de téléchargement d'IronPDF, consultez son site webInformations sur le paquet NuGet IronPDF sur le site web de NuGet.
Utiliser la DLL pour l'installation
Vous pouvez également utiliser le fichier DLL d'IronPDF pour l'intégrer directement dans votre projet. Cliquez iciIronPDF DLL Télécharger pour obtenir le fichier ZIP contenant la DLL. Après avoir décompressé le fichier, incorporez la DLL dans votre projet.
Mise en œuvre de la logique
En intégrant les fonctionnalités des deux bibliothèques, HTML Agility Pack(HAP) et IronPDF peuvent être mis en œuvre en C# pour lire des informations HTML et produire des documents PDF à la volée. Les étapes de la mise en œuvre sont énumérées ci-dessous, accompagnées d'un exemple de code qui décrit chacune d'entre elles :
Charger du contenu HTML à l'aide de HTML Agility Pack : Pour charger du matériel HTML à partir d'une source, telle qu'un fichier, une chaîne ou une URL, utilisez le HTML Agility Pack. Dans cette phase, le document HTML est analysé et un objet document HTML manipulable est créé.
Extraire le contenu souhaité: Pour choisir et extraire un contenu particulier du document HTML, utilisez le HTML Agility Pack en conjonction avec des requêtes XPath ou LINQ. Il peut s'agir de choisir des éléments en fonction de leurs propriétés, de leurs balises ou de leur structure hiérarchique.
Convertir HTML en PDF à l'aide d'IronPDF : Pour créer un document PDF à partir du contenu HTML récupéré, utilisez IronPDF. IronPDF convertit facilement des documents HTML au format PDF tout en conservant le style et la mise en page.
En option : Personnaliser la sortie PDF: Utilisez IronPDF pour ajouter des en-têtes, des pieds de page, la numérotation des pages et d'autres composants dynamiques pour personnaliser la sortie PDF selon vos besoins. Cette étape permet d'améliorer l'apparence et la convivialité du document PDF résultant.
Sauvegarder ou diffuser le document PDF : Le document PDF créé peut être transmis directement au client ou au navigateur pour être téléchargé, ou il peut être enregistré dans un fichier. IronPDF offre des moyens d'enregistrer des fichiers PDF vers différents flux de sortie.
using HtmlAgilityPack;
StringBuilder htmlContent = new StringBuilder();
// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("https://ironpdf.com/");
// Select specific elements using XPath or LINQ
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");
// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
htmlContent.Append(node.OuterHtml);
Console.WriteLine(node.InnerText);
}
// Convert HTML content to PDF using IronPDF
var Renderer = new IronPdf.HtmlToPdf();
var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());
// Save PDF to file
PDF.SaveAs("output.pdf");
Console.WriteLine("PDF generated successfully!");
Console.ReadKey();
using HtmlAgilityPack;
StringBuilder htmlContent = new StringBuilder();
// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("https://ironpdf.com/");
// Select specific elements using XPath or LINQ
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");
// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
htmlContent.Append(node.OuterHtml);
Console.WriteLine(node.InnerText);
}
// Convert HTML content to PDF using IronPDF
var Renderer = new IronPdf.HtmlToPdf();
var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());
// Save PDF to file
PDF.SaveAs("output.pdf");
Console.WriteLine("PDF generated successfully!");
Console.ReadKey();
Imports HtmlAgilityPack
Private htmlContent As New StringBuilder()
' Load HTML content from a file or URL
Private web As New HtmlWeb()
Private doc As HtmlDocument = web.Load("https://ironpdf.com/")
' Select specific elements using XPath or LINQ
Private nodes As HtmlNodeCollection = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']")
' Iterate through selected nodes and extract content
For Each node As HtmlNode In nodes
htmlContent.Append(node.OuterHtml)
Console.WriteLine(node.InnerText)
Next node
' Convert HTML content to PDF using IronPDF
Dim Renderer = New IronPdf.HtmlToPdf()
Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString())
' Save PDF to file
PDF.SaveAs("output.pdf")
Console.WriteLine("PDF generated successfully!")
Console.ReadKey()
Le résultat de l'exécution est présenté ci-dessous :
Conclusion
Qu'il s'agisse d'analyser des données HTML ou de créer des rapports PDF, les développeurs peuvent gérer et modifier facilement les documents grâce à l'intégration harmonieuse de HTML Agility Pack et d'IronPDF en C#. Les développeurs peuvent facilement et précisément automatiser les opérations liées aux documents en combinant les fonctionnalités de production de PDF d'IronPDF avec les capacités d'analyse de HTML Agility Pack. La combinaison de ces deux bibliothèques constitue une solution solide de gestion de documents en C#, qu'il s'agisse de créer des rapports dynamiques ou d'extraire des données de pages web.
Une licence perpétuelle, un an de maintenance du logiciel et une mise à jour de la bibliothèque sont inclus dans l'offre $749 Lite. IronPDF fournit des licences gratuites avec des limitations temporelles et de redistribution. Pendant la période d'essai, les utilisateurs peuvent évaluer la solution sans voir de filigrane. Veuillez vous rendre sur le site d'IronPDF à l'adresse suivanteInformations sur les licences pour en savoir plus sur le coût et la licence. Pour en savoir plus sur les bibliothèques d'Iron Software, visitez leur site webPage d'information sur les produits.
Jordi maîtrise parfaitement Python, C# et C++. Lorsqu'il ne met pas à profit ses compétences chez Iron Software, il se consacre à la programmation de jeux. Partageant des responsabilités en matière de tests de produits, de développement de produits et de recherche, Jordi apporte une valeur ajoutée considérable à l'amélioration continue des produits. Cette expérience variée le stimule et l'engage, et il dit que c'est l'un des aspects qu'il préfère dans son travail chez Iron Software. Jordi a grandi à Miami, en Floride, et a étudié l'informatique et les statistiques à l'université de Floride.
< PRÉCÉDENT docfx C# (Comment ça marche pour les développeurs)
SUIVANT > C# Continue (Comment ça marche pour les développeurs)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier