在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
CefSharp是Chromium嵌入式框架(Chromium Embedded Framework)的.NET封装器,开发人员现在可以轻松地将Chromium强大的Web浏览器引擎集成到他们的.NET桌面应用程序和WPF应用程序中。通过 CefSharp,.NET 应用程序开发人员可以在定制的桌面界面中获得丰富的网络体验,无需任何外部依赖即可利用 Chromium 的网络功能和开发工具。该框架具有多种新功能,如自定义选项和对浏览器行为的控制,使整合 HTML5、CSS3 和 JavaScript 等当代网络技术变得更加容易。
CefSharp 的跨平台互操作性和网络内容交互功能改变了用户在桌面解决方案中与基于网络的内容的交互方式和体验,提升了桌面程序的性能,并在应用程序环境中实现了动态的网上冲浪体验。在本文中,我们将通过代码片段进一步了解 CefSharp 的开源版本。
1.从 Visual Studio 项目中创建一个新的 Windows 窗体。
2.安装CefSharp库。
3.为 CefSharp 声明所需的对象,以便进行最小编译。
4.输入需要加载的 URL。
5.运行代码。
安装 CefSharp.WinForms:
CefSharp 是一个框架,通过将 Chromium 网络浏览器引擎的强大功能毫不费力地集成到.NET 应用程序中,改变了开发人员构建具有集成网络冲浪功能的桌面应用程序和自动化项目的方式。在 CefSharp 的帮助下,我们可以显示远程网络内容,包括支持 HTML5 的嵌入式用户界面。
在介绍 CefSharp 时需要强调的重要事项有
通过使用 CefSharp,开发人员可以改善桌面应用程序,促进网上冲浪体验,鼓励用户互动,并在应用程序环境中为用户提供丰富的现代信息。
示例代码:
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
这段代码使用 CefSharp 开发了一个基本的 WinForms 应用程序,其中包含一个基于 Chromium 的嵌入式网络浏览器。下面是解释:
有关使用 CefSharp 构建的、可编译的应用程序的基本示例,请参见 项目.更复杂的示例项目可在该项目的源代码中找到。
集成 IronPDF使用 CefSharp 的 Chromium 嵌入式框架生成 PDF 的功能 (CEF) 该浏览器要求在.NET应用程序中同时使用 CefSharp 和 IronPDF。然而,截至 2022 年 1 月的最新版本,CefSharp 和 IronPDF 之间还没有直接的、开箱即用的接口。
CefSharp的主要目标是将Chromium网络浏览器引擎集成到.NET程序中,允许通过应用程序的用户界面显示在线内容并与之交互。CefSharp 可为 WPF 和 Windows 窗体应用程序提供浏览器控件。
虽然 CefSharp 和 IronPDF 没有直接集成,但开发人员仍可在同一应用程序上下文中使用这两个库。
要获取 IronPDF 库,您需要遵循以下步骤。在软件包管理器中输入以下代码:
Install-Package IronPdf
dotnet add package IronPdf
或者,您也可以使用 NuGet 软件包管理器搜索软件包 "IronPDF"。从所有与 IronPDF 相关的 NuGet 软件包列表中,选择并下载所需的软件包。
要在 C# 应用程序中将 IronPDF 与 CefSharp 集成,需要执行两个步骤:利用 CefSharp 提供的基于 Chromium 的浏览器渲染 HTML 内容,然后使用 IronPDF 将 HTML 信息转换为 PDF 文档。下面的示例演示了如何完成这一集成:
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
这段代码演示了一个简单的集成,即截取 Chromium 浏览器中加载的 HTML 内容,并使用 IronPDF 将其转换为 PDF 文档。下面是解释:
GetSourceAsync
异步捕获已加载页面的 HTML 内容。()`.这段代码演示了一个简单的集成,即截取 Chromium 浏览器中加载的 HTML 内容,然后使用 IronPDF 将其转换为 PDF 文档。您可以根据应用程序的具体需求自定义 URL、错误处理和其他方面。有关 IronPDF 文档的更多信息,请参阅 这里.
将 IronPDF 与 CefSharp 集成到 C# 应用程序中,为管理文件和在线信息开辟了新的可能性。通过将 IronPDF 的 PDF 生成功能与 CefSharp 提供的基于 Chromium 的浏览器相结合,开发人员可以创建灵活的应用程序,在生成高质量 PDF 文档的同时整合动态网页内容。
IronPDF 的精简版软件包售价为 $749,包括为期一年的软件维护合同、升级选项、永久许可证和三十天退款保证。在三十天的试用期内,用户可以使用带水印的试用版在实际应用场景中对产品进行评估。要了解有关 IronPDF 成本、许可和免费版本的更多信息,请访问 链接.有关 Iron Software 的更多信息,请访问他们的 网站.