.NET-HILFE

Cefsharp.WPF.NET Core (Wie es für Entwickler funktioniert)

Veröffentlicht 27. Januar 2024
Teilen Sie:

Einführung

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.

Wie man CefSharp benutzt

  1. Erstellen Sie ein neues Windows-Formular aus dem Visual Studio-Projekt.

  2. Installieren Sie die Bibliothek CefSharp.

  3. Deklarieren Sie das erforderliche Objekt für CefSharp, das bereit ist, minimal zu kompilieren.

  4. Geben Sie die URL ein, die geladen werden soll.

  5. Führen Sie den Code aus.

    Installieren Sie CefSharp.WinForms:

    • Die einfachste Methode, CefSharp zu installieren, ist die Verwendung des NuGet-Paketmanagers von Visual Studio.
    • Starten Sie das Projekt in Visual Studio.
    • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt.
    • Wählen Sie "NuGet-Pakete verwalten".
    • Gehen Sie auf die Registerkarte "Durchsuchen" und suchen Sie nach "CefSharp".
    • Wählen Sie das CefSharp-Paket (CefSharp.Wpf, CefSharp.WinForms, usw.) die für Ihr Projekt geeignet ist.
    • Um das Paket in Ihr Projekt einzubinden, klicken Sie auf "Installieren".

Die Bedeutung von CefSharp

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:

  • Das eingebettete Chromium-Framework (CEF) dient als Rahmen für CefSharp und ermöglicht die Integration der Funktionen des Chromium-Browsers in andere Programme. Durch die Nutzung des Chromium-Projekts von Google erweitert CefSharp Desktop-Programme um anspruchsvolle Webfunktionen.
  • .NET-Integration: CefSharp ist ein leistungsstarker .NET-Wrapper für Cef. Es macht es Programmierern leicht, mit C# oder anderen .NET-Sprachen einen schnellen Webbrowser in ihre Desktop-.NET-Anwendungen zu integrieren.
  • Web-Surfen in Desktop-Anwendungen: Mit CefSharp können Entwickler problemlos Web-Browsing-Funktionen in ihre Desktop-Programme einbauen. Diese Funktion bietet Entwicklern eine Vielzahl von Möglichkeiten, Online-Material in ihre Benutzeroberflächen einzubinden oder einzigartige webfähige Desktop-Anwendungen zu erstellen. Sie kann einen Rückruf erhalten, wenn JavaScript-Ereignisse ausgelöst werden.
  • Unterstützung umfangreicher Webtechnologien: Durch den Einsatz von CefSharp können Entwickler alle Möglichkeiten nutzen, die Chromium zu bieten hat, einschließlich der Unterstützung für die neuesten Webstandards wie HTML5, CSS3, JavaScript, WebGL und andere moderne Webstandards. Dadurch ist es möglich, modernste Webtechnologien in Desktop-Programme einzubinden.
  • 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
VB   C#

Dieser Code verwendet CefSharp, um eine einfache WinForms-Anwendung mit einem eingebetteten, auf Chromium basierenden Webbrowser zu entwickeln. Hier ist eine Erklärung:

  • Initialisiert die CefSharp-Einstellungen mit CefSettings.
  • ChromiumWebBrowser: Diese Klasse stellt das von CefSharp bereitgestellte Webbrowser-Steuerelement dar.
  • Das LoadingStateChanged-Ereignis behandelt die Änderungen des Ladezustands des Browsers, z. B. wenn eine Seite fertig geladen ist.
  • 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 der projekt. Kompliziertere Beispielprojekte sind im Quelltext des Projekts verfügbar.

CefSharp mit IronPDF

Integration von IronPDFpDF-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.

IronPDF installieren

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

CefSharp.Wpf.NetCore (So funktioniert es für Entwickler): Abbildung 1 - IronPDF installieren

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.

CefSharp.Wpf.NetCore (Wie es für Entwickler funktioniert): Abbildung 2 - IronPDF

Verwendung von IronPDF in CefSharp C#

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
VB   C#

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:

  • Initialisieren Sie CefSharp, um den Chromium-Browser in eine Windows Forms-Anwendung zu integrieren.
  • chromiumWebBrowser"-Steuerelement: Dieses Steuerelement lädt eine bestimmte URL (in diesem Beispiel: "https://ironpdf.com/") in den Browser ein und erstellt eine Instanz davon.
  • ereignis 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().
  • IronPDF-Integration: Der erfasste HTML-Inhalt (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.

    CefSharp.Wpf.NetCore (Wie es für Entwickler funktioniert): Abbildung 3 - Ausgabe

    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 unter hier.

Schlussfolgerung

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 die link. Für weitere Informationen über Iron Software besuchen Sie bitte deren website.

< PREVIOUS
Npgsql C# .NET (Wie es für Entwickler funktioniert)
NÄCHSTES >
Microsoft Logging C# (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >