
Cefsharp.WPF.NET Core (Fonctionnement Pour les Développeurs)
Les développeurs peuvent désormais intégrer facilement le puissant moteur de navigateur Web de Chromium dans leurs applications de bureau .NET et leurs applications WPF avec CefSharp, un inventif wrapper .NET autour du Chromium Embedded Framework. Des expériences Web riches dans des interfaces de bureau personnalisées sont rendues possibles pour les développeurs d'applications .NET par CefSharp, qui leur permet de tirer parti des fonctionnalités Web et des outils de développement de Chromium sans dépendances externes. Avec sa large gamme de nouvelles fonctionnalités telles que les options de personnalisation et le contrôle du comportement du navigateur, ce framework facilite l'intégration des technologies Web contemporaines telles que HTML5, CSS3 et JavaScript.
Les interactions et expériences des utilisateurs avec le contenu Web dans les solutions de bureau sont transformées par l'interopérabilité multiplateforme de CefSharp et ses capacités d'interaction avec le contenu Web, qui élèvent les programmes de bureau et permettent des expériences de navigation Web dynamiques directement au sein de l'environnement de l'application. Dans cet article, nous allons en savoir plus sur la version open-source de CefSharp à l'aide d'extraits de code.
Comment utiliser CefSharp
- Créez un nouveau formulaire Windows à partir du projet Visual Studio.
- Installez la bibliothèque CefSharp.
- Déclarez l'objet requis pour CefSharp qui est prêt à être compilé au minimum.
- Entrez l'URL qui doit être chargée.
- Exécutez le code.
Installer CefSharp.WinForms :
- Utiliser le gestionnaire de packages NuGet de Visual Studio est la méthode la plus simple pour installer CefSharp.
- Lancez le projet dans Visual Studio.
- Dans Solution Explorer, faites un clic droit sur votre projet.
- Choisissez "Gérer les packages NuGet".
- Allez à l'onglet "Parcourir" et recherchez "CefSharp".
- Sélectionnez le package CefSharp (CefSharp.Wpf, CefSharp.WinForms, etc.) qui est approprié pour votre projet.
- Pour inclure le package dans votre projet, cliquez sur "Installer".
Importance de CefSharp
CefSharp est un framework qui transforme la façon dont les développeurs construisent des applications de bureau et des projets d'automatisation avec des capacités de navigation Web intégrées en intégrant sans effort la puissance du moteur de navigateur Web de Chromium dans les applications .NET. Avec l'aide de CefSharp, nous pouvons afficher du contenu Web distant, y compris une interface utilisateur intégrée avec support HTML5.
Les éléments importants à souligner dans une introduction à CefSharp sont :
- Le Chromium Embedded Framework (CEF) sert de cadre pour CefSharp, permettant l'intégration des fonctionnalités du navigateur Chromium dans d'autres programmes. En utilisant le projet Chromium de Google, CefSharp améliore les programmes de bureau avec des fonctionnalités Web sophistiquées.
- Intégration .NET : CefSharp est un puissant wrapper .NET pour Cef. Il facilite l'utilisation par les programmeurs de C# ou d'autres langages .NET pour intégrer un navigateur Web rapide dans leurs applications de bureau .NET.
- Navigation Web dans les applications de bureau : Avec CefSharp, les développeurs peuvent facilement intégrer des fonctionnalités de navigation Web dans leurs programmes de bureau. Cette fonctionnalité offre un monde de possibilités aux développeurs, leur permettant d'incorporer du matériel en ligne dans leurs interfaces utilisateur ou de créer des applications de bureau uniques compatibles Web. Il peut recevoir un rappel lorsque des événements JavaScript se déclenchent.
- Support des technologies Web riches : En utilisant CefSharp, les développeurs peuvent tirer parti de toutes les capacités offertes par Chromium, y compris le support des normes Web récentes comme HTML5, CSS3, JavaScript, WebGL et d'autres normes Web modernes. Cela permet d'inclure des technologies Web de pointe dans les programmes de bureau.
- Flexibilité et personnalisation : CefSharp offre aux développeurs une grande flexibilité et des possibilités de personnalisation, leur permettant de gérer les événements, d'exécuter du JavaScript, d'interagir avec le contenu en ligne et de modifier le comportement du navigateur pour répondre aux besoins spécifiques de l'application. CefSharp avec WebGL, qui utilise OpenGL/DirectX pour le rendu accéléré par matériel, prend en charge le contenu 3D.
Grâce à l'utilisation de CefSharp, les développeurs peuvent améliorer les applications de bureau en facilitant les expériences de navigation Web, en favorisant l'interaction utilisateur et en fournissant aux utilisateurs un contenu riche et moderne au sein de l'environnement de l'application.
Exemple de code :
using System;
using System.Windows.Forms;
using CefSharp;
using CefSharp.WinForms;
namespace CefSharpExample
{
public partial class MainForm : Form
{
private ChromiumWebBrowser chromeBrowser;
public MainForm()
{
InitializeComponent();
// Initialize CefSharp settings
CefSettings settings = new CefSettings();
Cef.Initialize(settings);
// Create the ChromiumWebBrowser instance
chromeBrowser = new ChromiumWebBrowser("https://ironpdf.com/"); // Load a URL
// Add the ChromiumWebBrowser control to the form
this.Controls.Add(chromeBrowser);
chromeBrowser.Dock = DockStyle.Fill; // Fill the entire form
// Handle when the browser component has finished loading
chromeBrowser.LoadingStateChanged += ChromeBrowser_LoadingStateChanged;
}
private void ChromeBrowser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
{
if (!e.IsLoading)
{
// Page has finished loading
// Perform actions after the page has loaded
Console.WriteLine("Finished loading.");
}
}
// Dispose of Cef resources when the form is closed
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
Cef.Shutdown();
}
}
}Imports System
Imports System.Windows.Forms
Imports CefSharp
Imports CefSharp.WinForms
Namespace CefSharpExample
Partial Public Class MainForm
Inherits Form
Private chromeBrowser As ChromiumWebBrowser
Public Sub New()
InitializeComponent()
' Initialize CefSharp settings
Dim settings As New CefSettings()
Cef.Initialize(settings)
' Create the ChromiumWebBrowser instance
chromeBrowser = New ChromiumWebBrowser("https://ironpdf.com/") ' Load a URL
' Add the ChromiumWebBrowser control to the form
Me.Controls.Add(chromeBrowser)
chromeBrowser.Dock = DockStyle.Fill ' Fill the entire form
' Handle when the browser component has finished loading
AddHandler chromeBrowser.LoadingStateChanged, AddressOf ChromeBrowser_LoadingStateChanged
End Sub
Private Sub ChromeBrowser_LoadingStateChanged(ByVal sender As Object, ByVal e As LoadingStateChangedEventArgs)
If Not e.IsLoading Then
' Page has finished loading
' Perform actions after the page has loaded
Console.WriteLine("Finished loading.")
End If
End Sub
' Dispose of Cef resources when the form is closed
Private Sub MainForm_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
Cef.Shutdown()
End Sub
End Class
End NamespaceCe code utilise CefSharp pour développer une application WinForms de base avec un navigateur Web intégré basé sur Chromium. Voici une explication :
- Initialisez les paramètres de CefSharp en utilisant
CefSettings. - ChromiumWebBrowser : Cette classe représente le contrôle de navigateur Web fourni par CefSharp.
- L'événement
LoadingStateChangedgère les changements d'état de chargement du navigateur, par exemple, lorsque la page termine son chargement. - L'événement
MainForm_FormClosinggarantit que les ressources Cef sont correctement fermées à la fermeture du formulaire.
Pour un exemple de base, consultez les applications construites utilisant CefSharp qui sont prêtes à être compilées dans le Projet d'exemple minimal sur GitHub. Des projets d'exemples plus complexes sont disponibles dans la source du projet.
CefSharp avec IronPDF
L'intégration des capacités de génération de PDF de IronPDF avec le navigateur Chromium Embedded Framework (CEF) de CefSharp nécessite d'utiliser CefSharp et IronPDF ensemble dans une application .NET. Cependant, à la date de la version la plus récente en janvier 2022, il n'existe pas d'interface directe et prête à l'emploi entre CefSharp et IronPDF.
Le principal objectif de CefSharp est d'intégrer le moteur de navigateur Web Chromium dans les programmes .NET, permettant d'afficher et d'interagir avec du contenu en ligne via l'interface utilisateur de l'application. CefSharp fournit des contrôles de navigateur pour les applications WPF et Windows Forms.
Bien que CefSharp et IronPDF ne soient pas directement intégrés, les développeurs peuvent toujours utiliser les deux bibliothèques dans le même contexte d'application.
IronPDF excelle dans la conversion HTML en PDF, garantissant une préservation précise des mises en page et styles originaux. Il est parfait pour créer des PDF à partir de contenus basés sur le Web tels que des rapports, des factures et de la documentation. Avec le support des fichiers HTML, des URLs et des chaînes HTML brutes, IronPDF produit facilement des documents PDF de haute qualité.
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End ClassInstaller IronPDF
Pour obtenir la bibliothèque IronPDF, vous devez suivre les étapes à venir. Entrez le code suivant dans le gestionnaire de packages :

Alternativement, vous pouvez utiliser le gestionnaire de packages NuGet pour rechercher le package "IronPDF". Dans la liste de tous les packages NuGet liés à IronPDF, choisissez et téléchargez le package nécessaire.

Using IronPDF in CefSharp C#
Pour intégrer IronPDF avec CefSharp dans une application C#, vous devez effectuer deux étapes : utiliser le navigateur basé sur Chromium fourni par CefSharp pour rendre le contenu HTML, puis utiliser IronPDF pour convertir ces informations HTML en document PDF. L'exemple suivant montre comment réaliser cette intégration :
using CefSharp;
using IronPdf;
using System;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CefSharpIronPdfIntegration
{
public partial class MainForm : Form
{
private ChromiumWebBrowser chromeBrowser;
public MainForm()
{
InitializeComponent();
// Initialize CefSharp
CefSettings settings = new CefSettings();
Cef.Initialize(settings);
// Create the ChromiumWebBrowser instance
chromeBrowser = new ChromiumWebBrowser("https://ironpdf.com/"); // Load a URL
// Add the ChromiumWebBrowser control to the form
this.Controls.Add(chromeBrowser);
chromeBrowser.Dock = DockStyle.Fill; // Fill the entire form
// Handle when the browser component has finished loading
chromeBrowser.LoadingStateChanged += ChromeBrowser_LoadingStateChanged;
}
private async void ChromeBrowser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
{
if (!e.IsLoading)
{
// Page has finished loading
// Capture HTML content after page load completes
string htmlContent = await chromeBrowser.GetSourceAsync();
// Use IronPDF to generate a PDF from the captured HTML content
var Renderer = new IronPdf.HtmlToPdf();
var PDF = Renderer.RenderHtmlAsPdf(htmlContent);
PDF.SaveAs("Output.pdf"); // Save the generated PDF
Console.WriteLine("PDF generated successfully.");
}
}
// Dispose of Cef resources when the form is closed to avoid unnecessary memory usage
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
Cef.Shutdown();
}
}
}Imports CefSharp
Imports IronPdf
Imports System
Imports System.Threading.Tasks
Imports System.Windows.Forms
Namespace CefSharpIronPdfIntegration
Partial Public Class MainForm
Inherits Form
Private chromeBrowser As ChromiumWebBrowser
Public Sub New()
InitializeComponent()
' Initialize CefSharp
Dim settings As New CefSettings()
Cef.Initialize(settings)
' Create the ChromiumWebBrowser instance
chromeBrowser = New ChromiumWebBrowser("https://ironpdf.com/") ' Load a URL
' Add the ChromiumWebBrowser control to the form
Me.Controls.Add(chromeBrowser)
chromeBrowser.Dock = DockStyle.Fill ' Fill the entire form
' Handle when the browser component has finished loading
AddHandler chromeBrowser.LoadingStateChanged, AddressOf ChromeBrowser_LoadingStateChanged
End Sub
Private Async Sub ChromeBrowser_LoadingStateChanged(ByVal sender As Object, ByVal e As LoadingStateChangedEventArgs)
If Not e.IsLoading Then
' Page has finished loading
' Capture HTML content after page load completes
Dim htmlContent As String = Await chromeBrowser.GetSourceAsync()
' Use IronPDF to generate a PDF from the captured HTML content
Dim Renderer = New IronPdf.HtmlToPdf()
Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent)
PDF.SaveAs("Output.pdf") ' Save the generated PDF
Console.WriteLine("PDF generated successfully.")
End If
End Sub
' Dispose of Cef resources when the form is closed to avoid unnecessary memory usage
Private Sub MainForm_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
Cef.Shutdown()
End Sub
End Class
End NamespaceCe code démontre une simple intégration où le contenu HTML chargé dans le navigateur Chromium est intercepté, et IronPDF est utilisé pour le transformer en document PDF. Voici une explication :
- Initialisez CefSharp pour intégrer le navigateur Chromium dans une application Windows Forms.
- Contrôle
ChromiumWebBrowser: Ce contrôle charge une URL spécifique (dans cet exemple, "https://ironpdf.com/") dans le navigateur et crée une instance de celui-ci. - Événement
LoadingStateChanged: Suivi de la progression du chargement du navigateur. Lorsque la page a terminé de charger (e.IsLoadingest faux), le ChromeBrowser capture de manière asynchrone le contenu HTML de la page chargée en utilisantGetSourceAsync(). - Intégration IronPDF : Le contenu HTML capturé (
htmlContent) est converti en document PDF à l'aide de la fonctionnalité HtmlToPdf de IronPDF. Le PDF généré est enregistré sous "Output.pdf". - Fermeture du formulaire : assurez-vous que les ressources Cef sont correctement fermées en appelant
Cef.Shutdown()après la fermeture du formulaire.

Ce code démontre une simple intégration où le contenu HTML chargé dans le navigateur Chromium est intercepté puis converti en document PDF à l'aide d'IronPDF. Personnalisez l'URL, la gestion des erreurs et d'autres aspects selon les besoins spécifiques de votre application. Pour plus d'informations sur la documentation d'IronPDF, veuillez consulter le package NuGet IronPDF.
Conclusion
L'intégration d'IronPDF avec CefSharp dans une application C# ouvre de nouvelles possibilités pour la gestion des documents et les informations en ligne. En combinant les fonctionnalités de génération de PDF d'IronPDF avec le navigateur basé sur Chromium fourni par CefSharp, les développeurs peuvent créer des applications flexibles qui peuvent générer des documents PDF de haute qualité tout en incorporant du contenu Web dynamique.
Le package Lite de IronPDF est disponible pour $999 et inclut un contrat de maintenance logicielle d'un an, des options de mise à niveau, une licence permanente et une garantie de remboursement de trente jours. Pendant la période d'essai de trente jours, les utilisateurs peuvent évaluer le produit dans des scénarios réels avec une version d'essai filigranée. Pour en savoir plus sur le coût, la licence et la version gratuite de IronPDF, rendez-vous sur les informations de licence d'IronPDF. Pour plus d'informations sur Iron Software, veuillez visiter leur site Web de Iron Software.

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.
Articles connexes


