Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Entwickler können die leistungsstarke Webbrowser-Engine von Chromium jetzt ganz einfach in ihre .NET-Desktop-Anwendungen und WPF-Applikationen integrieren - mit CefSharp, einem originellen .NET-Wrapper um das Chromium Embedded Framework. CefSharp ermöglicht Entwicklern von .NET-Apps reichhaltige Web-Erlebnisse innerhalb angepasster Desktop-Oberflächen, indem es ihnen erlaubt, die Web-Funktionen und Entwickler-Tools von Chromium ohne externe Abhängigkeiten zu nutzen. Mit seinem breiten Spektrum an neuen Funktionen wie Anpassungsmöglichkeiten und Kontrolle über das Browserverhalten erleichtert dieses Framework die Integration moderner Webtechnologien wie HTML5, CSS3 und JavaScript.
Die Interaktionen und Erfahrungen der Benutzer mit webbasierten Inhalten in Desktop-Lösungen werden durch die plattformübergreifende Interoperabilität und die Interaktionsmöglichkeiten mit Webinhalten von CefSharp verändert, die Desktop-Programme aufwerten und dynamische Web-Surfing-Erlebnisse direkt in der Anwendungsumgebung ermöglichen. In diesem Artikel werden wir mehr über die Open-Source-Version von CefSharp anhand von Code-Schnipseln erfahren.
Erstellen Sie ein neues Windows-Formular aus dem Visual Studio-Projekt.
Installieren Sie die Bibliothek CefSharp.
Deklarieren Sie das erforderliche Objekt für CefSharp, das bereit ist, minimal zu kompilieren.
Geben Sie die URL ein, die geladen werden soll.
Führen Sie den Code aus.
Installieren Sie CefSharp.WinForms:
CefSharp ist ein Framework, das die Art und Weise, wie Entwickler Desktop-Anwendungen und Automatisierungsprojekte mit integrierten Websurfing-Funktionen erstellen, verändert, indem es die Leistung der Chromium-Webbrowser-Engine mühelos in .NET-Anwendungen integriert. Mit Hilfe von CefSharp können wir Remote-Webinhalte anzeigen, einschließlich eingebetteter UI mit HTML5-Unterstützung.
Wichtige Punkte, die in einer CefSharp-Einführung hervorgehoben werden sollten, sind:
Flexibilität und Anpassungsmöglichkeiten: CefSharp bietet Entwicklern ein hohes Maß an Flexibilität und Anpassungsmöglichkeiten, die es ihnen ermöglichen, Ereignisse zu handhaben, JavaScript auszuführen, mit Online-Inhalten zu interagieren und das Verhalten des Browsers zu ändern, um bestimmte Anwendungsanforderungen zu erfüllen. CefSharp mit WebGL, das OpenGL/DirectX für hardwarebeschleunigtes Rendering nutzt, unterstützt 3D-Inhalte.
Durch den Einsatz von CefSharp können Entwickler ihre Desktop-Anwendungen verbessern, indem sie das Surfen im Internet erleichtern, die Interaktion der Benutzer fördern und ihnen reichhaltige, aktuelle Informationen innerhalb der Anwendungsumgebung zur Verfügung stellen.
Muster-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();
}
}
}
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 Namespace
Dieser Code verwendet CefSharp, um eine einfache WinForms-Anwendung mit einem eingebetteten, auf Chromium basierenden Webbrowser zu entwickeln. Hier ist eine Erklärung:
Das Ereignis MainForm_FormClosing stellt sicher, dass die Cef-Ressourcen beim Schließen des Formulars ordnungsgemäß heruntergefahren werden.
Ein einfaches Beispiel für Anwendungen, die mit CefSharp erstellt wurden und bereits kompiliert werden können, finden Sie in derMinimales Beispielprojekt auf GitHub. Kompliziertere Beispielprojekte sind im Quelltext des Projekts verfügbar.
Integration vonIronPDFpDF-Erzeugungsfunktionen mit dem Chromium Embedded Framework von CefSharp(CEF) browser erfordert die gemeinsame Verwendung von CefSharp und IronPDF in einer .NET-Anwendung. In der neuesten Version vom Januar 2022 gibt es jedoch keine direkte, sofort einsatzbereite Schnittstelle zwischen CefSharp und IronPDF.
Das Hauptziel von CefSharp ist es, die Chromium-Webbrowser-Engine in .NET-Programme zu integrieren, so dass Online-Inhalte über die Benutzeroberfläche der Anwendung angezeigt und mit ihnen interagiert werden kann. CefSharp bietet Browser-Steuerelemente für WPF- und Windows Forms-Anwendungen.
Obwohl CefSharp und IronPDF nicht direkt integriert sind, können Entwickler beide Bibliotheken im gleichen Anwendungskontext verwenden.
Um die IronPDF-Bibliothek zu erwerben, müssen Sie die folgenden Schritte ausführen. Geben Sie den folgenden Code in den Paketmanager ein:
Install-Package IronPdf
dotnet add package IronPdf
Alternativ können Sie den NuGet Package Manager verwenden, um nach dem Paket "IronPDF" zu suchen. Wählen Sie aus der Liste aller NuGet-Pakete, die mit IronPDF in Verbindung stehen, das gewünschte Paket aus und laden Sie es herunter.
Um IronPDF mit CefSharp in eine C#-Anwendung zu integrieren, müssen Sie zwei Schritte durchführen: den Chromium-basierten Browser von CefSharp nutzen, um HTML-Inhalte zu rendern, und dann IronPDF verwenden, um diese HTML-Informationen in ein PDF-Dokument zu konvertieren. Das folgende Beispiel zeigt, wie diese Integration erreicht werden kann:
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();
}
}
}
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 Namespace
Dieser Code demonstriert eine einfache Integration, bei der der im Chromium-Browser geladene HTML-Inhalt abgefangen und mit IronPDF in ein PDF-Dokument umgewandelt wird. Hier ist eine Erklärung:
https://ironpdf.com/
") in den Browser ein und erstellt eine Instanz davon.LoadingStateChanged
: Verfolgt den Ladefortschritt des Browsers. Wenn die Seite fertig geladen ist(e.IsLoading ist falsch)erfasst der ChromeBrowser asynchron den HTML-Inhalt der geladenen Seite mit GetSourceAsync()
.htmlInhalt
) wird mit der IronPDF-Funktion HtmlToPdf in ein PDF-Dokument umgewandelt. Das erzeugte PDF wird als "Output.pdf" gespeichert.Formular schließen: Stellen Sie sicher, dass die Cef-Ressourcen ordnungsgemäß heruntergefahren werden, indem Sie Cef.Shutdown()
nachdem das Formular geschlossen wurde.
Dieser Code demonstriert eine einfache Integration, bei der der im Chromium-Browser geladene HTML-Inhalt abgefangen und dann mit IronPDF in ein PDF-Dokument umgewandelt wird. Passen Sie die URL, die Fehlerbehandlung und andere Aspekte an die spezifischen Anforderungen Ihrer Anwendung an. Weitere Informationen zur IronPDF-Dokumentation finden Sie in derIronPDF NuGet-Paket.
Die Integration von IronPDF mit CefSharp in eine C#-Anwendung eröffnet neue Möglichkeiten für die Verwaltung von Dokumenten und Online-Informationen. Durch die Kombination der PDF-Generierungsfunktionen von IronPDF mit dem Chromium-basierten Browser von CefSharp können Entwickler flexible Anwendungen erstellen, die qualitativ hochwertige PDF-Dokumente generieren und gleichzeitig dynamische Web-Inhalte einbinden können.
Das Lite-Paket von IronPDF ist für $749 erhältlich und beinhaltet einen einjährigen Software-Wartungsvertrag, Upgrade-Optionen, eine permanente Lizenz und eine dreißigtägige Geld-zurück-Garantie. Während der dreißigtägigen Testphase können die Benutzer das Produkt mit einer mit Wasserzeichen versehenen Testversion in realen Szenarien testen. Um mehr über die Kosten, die Lizenzierung und die kostenlose Version von IronPDF zu erfahren, besuchen Sie dieIronPDF-Lizenzierungsinformationen. Für weitere Informationen über Iron Software besuchen Sie bitte derenIron Software Website.
9 .NET API-Produkte für Ihre Bürodokumente