
CefSharp.WPF.NET Core (Geliştiriciler için Nasıl Çalışır)
Geliştiriciler, inovatif bir .NET wrapper olan CefSharp ile Chromium Embedded Framework'ü (CEF) kullanarak Chromium'un güçlü web tarayıcı motorunu .NET masaüstü uygulamalarına ve WPF uygulamalarına kolayca entegre edebilirler. CefSharp, .NET uygulama geliştiricilerine, harici bağımlılıklara ihtiyaç duymadan Chromium'un web özelliklerinden ve geliştirici araçlarından yararlanarak zengin web deneyimlerini özelleştirilmiş masaüstü arayüzlerine getirme imkanı sağlar. HTML5, CSS3 ve JavaScript gibi çağdaş web teknolojilerini entegre etmeyi daha kolay hale getiren bu çerçeve, tarayıcı davranışını üzerindeki kontrol ve özelleştirme seçenekleri ile birlikte geniş bir yenilik yelpazesi sunar.
CefSharp'ın platformlar arası birlikte çalışabilirlik ve web içeriği etkileşim yetenekleri, masaüstü çözümlerinde kullanıcıların web tabanlı içerikle olan etkileşimini ve deneyimini dönüştürür, masaüstü programlarını yükseltir ve uygulama ortamında dinamik web gezintisi deneyimlerini mümkün kılar. Bu makalede, kod parçacıkları kullanarak CefSharp'ın açık kaynak sürümü hakkında daha fazla bilgi edineceğiz.
CefSharp Nasıl Kullanılır
- Visual Studio Projesinden yeni bir Windows Formu oluşturun.
- CefSharp kütüphanesini yükleyin.
- Derlemeye hazır en azından gereken CefSharp nesnesini bildirin.
- Yüklenecek URL'yi girin.
- Kodu çalıştırın.
CefSharp.WinForms Yükleyin:
- Visual Studio'nun NuGet Paket Yöneticisini kullanmak, CefSharp'ı yüklemenin en kolay yoludur.
- Visual Studio'da projeyi başlatın.
- Solution Explorer'da projenize sağ tıklayın.
- 'Manage NuGet Packages' seçeneğini seçin.
- 'Browse' sekmesine gidin ve 'CefSharp' araması yapın.
- Projenize uygun CefSharp paketi (CefSharp.Wpf, CefSharp.WinForms vb.) seçin.
- Paketi projenize eklemek için 'Install' butonuna tıklayın.
CefSharp'ın Önemi
CefSharp, Chromium'un web tarayıcı motorunu sorunsuz bir şekilde .NET uygulamalarına entegre ederek geliştiricilerin masaüstü uygulamaları ve otomasyon projeleri oluşturma şeklini dönüştüren bir çerçevedir. Web gezintisi yetenekleriyle birlikte geliyor. CefSharp ile, HTML5 desteğiyle oluşturulmuş gömülü UI dahil, uzak web içeriğini görüntüleyebiliriz.
CefSharp bir tanıtımında vurgulanması gereken önemli noktalar:
- Chromium Embedded Framework (CEF), CefSharp için temel bir çerçeve olarak hizmet eder ve Chromium tarayıcısının özelliklerini diğer programlarla entegre etmeye olanak tanır. Google'un Chromium projesini kullanarak, CefSharp masaüstü programlarını gelişmiş web özellikleriyle zenginleştirir.
- .NET Entegrasyonu: CefSharp, Cef için güçlü bir .NET wrapper'dır. Geliştiricilerin hızlı bir web tarayıcısını masaüstü .NET uygulamalarına entegre etmek için C# veya diğer .NET dillerini kullanmalarını sağlayarak kolaylaştırır.
- Masaüstü Uygulamalarında Web Gezintisi: CefSharp ile geliştiriciler, masaüstü programlarına web gezintisi özelliklerini kolayca entegre edebilirler. Bu özellik geliştiriciler için bir olasılıklar dünyası açar, çevrimiçi içeriği kullanıcı arayüzlerine dahil etmelerine veya web etkin masaüstü uygulamaları oluşturmalarına olanak tanır. JavaScript olayları tetiklendiğinde geri çağırma alabilir.
- Zengin Web Teknolojileri Desteği: CefSharp kullanarak, geliştiriciler HTML5, CSS3, JavaScript, WebGL ve diğer çağdaş web standartları gibi en yeni web standartlarını destekleyen tüm Chromium'un yeteneklerinden yararlanabilirler. Bu da, masaüstü programlarına gelişmiş web teknolojilerini dahil etmeyi mümkün kılar.
- Esneklik ve Özelleştirme: CefSharp, geliştiricilere büyük ölçüde esneklik ve özelleştirme seçenekleri sunar, olayları yönetmelerine, JavaScript'i çalıştırmalarına, çevrimiçi içerikle etkileşime girmelerine ve belirli uygulama ihtiyaçlarına uygun tarayıcı davranışını değiştirmelerine olanak tanır. CefSharp, donanım hızlandırmalı renderleme için OpenGL/DirectX'i kullanan WebGL ile 3D içeriği destekler.
CefSharp kullanımıyla birlikte, geliştiriciler masaüstü uygulamalarını geliştirerek web gezintisi deneyimlerini teşvik eder, kullanıcı etkileşimini destekler ve uygulama ortamında zengin, çağdaş bilgiler sunarlar.
Örnek Kod:
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 NamespaceBu kod, CefSharp'ı kullanarak gömülü bir web tarayıcısı ile temel bir WinForms uygulaması geliştirir. İşte bir açıklama:
- CefSharp ayarlarını
CefSettingskullanarak başlatın. - ChromiumWebBrowser: Bu sınıf, CefSharp tarafından sağlanan web tarayıcı kontrolünü temsil eder.
LoadingStateChangedolayı, örneğin bir sayfa yüklendiğinde tarayıcının yükleme durumu değişikliklerini yönetir.MainForm_FormClosingolayı, form kapatıldığında Cef kaynaklarının düzgün bir şekilde kapatılmasını sağlar.
GitHub'daki Minimal Örnek Projesi'nde derlemeye hazır, CefSharp kullanılarak oluşturulmuş temel bir örnek için bakın. Projenin kaynağında daha karmaşık örnek projeler mevcuttur.
CefSharp ile IronPDF
IronPDF'nin PDF oluşturma yeteneklerini CefSharp'ın Chromium Embedded Framework (CEF) tarayıcısı ile entegre etmek, .NET uygulamasında CefSharp ve IronPDF'yi birlikte kullanmayı gerektirir. Ancak Ocak 2022 itibariyle en son sürümde, CefSharp ve IronPDF arasında doğrudan, kutudan çıkarılabilir bir ara yüz yoktur.
CefSharp'ın temel hedefi, Chromium web tarayıcı motorunu .NET programlarına entegre etmektir, böylelikle çevrimiçi içerik, uygulamanın kullanıcı arayüzü aracılığıyla görüntülenebilir ve etkileşimde bulunulabilir. CefSharp, WPF ve Windows Forms uygulamaları için tarayıcı kontrolleri sağlar.
CefSharp ve IronPDF doğrudan entegre olmasa da, geliştiriciler her iki kütüphaneyi de aynı uygulama bağlamı içinde kullanabilirler.
IronPDF, HTML'den PDF'ye dönüşümde mükemmeldir, özgün düzenler ve stillerin hassas bir şekilde korunmasını sağlar. Raporlar, faturalar ve belgeler gibi web tabanlı içeriklerden PDF oluşturmak için mükemmeldir. HTML dosyaları, URL'ler ve ham HTML dizeleri için destekle, IronPDF yüksek kaliteli PDF belgelerini kolayca üretir.
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 ClassIronPDF Kurulumu
IronPDF kütüphanesine sahip olmak için, aşağıdaki adımları izlemeniz gerekir. Paket Yöneticisine aşağıdaki kodu girin:

Alternatif olarak, "IronPDF" paketini aramak için NuGet Paket Yöneticisi'ni kullanabilirsiniz. IronPDF ile ilgili tüm NuGet paketleri listesinden gerekli paketi seçip indirin.

Using IronPDF in CefSharp C#
IronPDF'i C# uygulamanızda CefSharp ile entegre etmek için iki adım gerçekleştirmeniz gerekir: HTML içeriğini görüntülemek için CefSharp tarafından sağlanan Chromium tabanlı tarayıcıyı kullanın ve ardından IronPDF kullanarak bu HTML bilgisini PDF belgesine dönüştürün. Aşağıdaki örnek, bu entegrasyonu nasıl gerçekleştireceğinizi göstermektedir:
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 NamespaceBu kod, Chromium tarayıcısına yüklenen HTML içeriğinin engellenmesinin ve IronPDF kullanılarak bir PDF belgesine dönüştürülmesinin basit bir entegrasyonunu gösterir. İşte bir açıklama:
- Windows Forms uygulamasına Chromium tarayıcısını entegre etmek için CefSharp'ı başlatın.
ChromiumWebBrowserKontrolü: Bu kontrol, tarayıcıya belirli bir URL'yi (bu örnekte, "https://ironpdf.com/") yükler ve bir örneğini oluşturur.LoadingStateChangedOlayı: Tarayıcının yükleme ilerlemesini izler. Sayfa yüklendiğinde (e.IsLoadingyanlış olduğunda), ChromeBrowser, yüklenen sayfanın HTML içeriğiniGetSourceAsync()kullanarak eşzamanlı olmayan bir şekilde yakalar.- IronPDF Entegrasyonu: Yakalanan HTML içeriği (
htmlContent), IronPDF'in HtmlToPdf özelliği kullanılarak bir PDF belgesine dönüştürülür. Oluşturulan PDF "Output.pdf" olarak kaydedilir. - Form Kapatma: Form kapatıldıktan sonra
Cef.Shutdown()çağrısını yaparak Cef kaynaklarının düzgün bir şekilde kapatıldığından emin olun.

Bu kod, Chromium tarayıcısına yüklenen HTML içeriğinin yakalanmasını ve ardından IronPDF kullanılarak bir PDF belgesine dönüştürülmesini gösterir. Uygulamanızın özel ihtiyaçlarına göre URL, hata yönetimi ve diğer yönleri özelleştirin. IronPDF belgeleri hakkında daha fazla bilgi için lütfen IronPDF NuGet Paketi'ne bakın.
Sonuç
IronPDF'in C# uygulamanızda CefSharp ile entegrasyonu, belgeleri ve çevrimiçi bilgileri yönetmek için yeni fırsatlar sunar. IronPDF'in PDF oluşturma özelliklerini CefSharp tarafından sağlanan Chromium tabanlı tarayıcı ile birleştirerek, geliştiriciler dinamik web içeriği ekleyerek yüksek kaliteli PDF belgeleri oluşturabilen esnek uygulamalar geliştirebilirler.
IronPDF'in Lite paketi $999 için mevcuttur ve bir yıllık yazılım bakım sözleşmesi, yükseltme seçenekleri, kalıcı bir lisans ve otuz gün para iade garantisi içerir. Otuz günlük deneme süresi boyunca, kullanıcılar su markalı deneme sürümü ile ürünü gerçek dünyadaki senaryolarda değerlendirebilirler. IronPDF maliyeti, lisanslama ve ücretsiz sürümü hakkında daha fazlasını öğrenmek için IronPDF Lisanslama Bilgilerini ziyaret edin. Iron Software hakkında daha fazla bilgi için lütfen Iron Software Web Sitesini ziyaret edin.

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.
İlgili Makaleler


