在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
现在,开发人员可以通过 CefSharp 将 Chromium 强大的 Web 浏览器引擎轻松集成到他们的 .NET 桌面应用程序和 WPF 应用程序中,CefSharp 是 Chromium 嵌入式框架的一个别出心裁的 .NET 封装器。 通过 CefSharp,.NET 应用程序开发人员可以在定制的桌面界面中获得丰富的网络体验,从而可以利用 Chromium 的网络功能和开发工具,而无需任何外部依赖。 该框架具有多种新功能,如自定义选项和对浏览器行为的控制,使 HTML5、CSS3 和 JavaScript 等当代网络技术的集成变得更加容易。
通过 CefSharp 的跨平台互操作性和网络内容交互功能,用户在桌面解决方案中与基于网络的内容进行交互并获得体验的方式发生了改变,CefSharp 提升了桌面程序的地位,并在应用程序环境中实现了动态的网上冲浪体验。 在本文中,我们将使用代码片段进一步了解 CefSharp 的开源版本。
从 Visual Studio 项目中创建一个新的 Windows 窗体。
安装CefSharp库。
为 CefSharp 声明所需的对象,该对象可随时进行最小化编译。
输入需要加载的 URL。
运行代码。
安装 CefSharp.WinForms:
CefSharpChromium 是一个框架,它将 Chromium 网络浏览器引擎的强大功能毫不费力地集成到 .NET 应用程序中,从而改变了开发人员构建具有集成网络冲浪功能的桌面应用程序和自动化项目的方式。 在 CefSharp 的帮助下,我们可以显示远程网页内容,包括支持 HTML5 的嵌入式用户界面。
在 CefSharp 介绍中需要强调的重要事项有
灵活性和定制化:CefSharp 为开发人员提供了极大的灵活性和定制可能性,允许他们处理事件、执行 JavaScript、与在线内容交互以及修改浏览器行为,以满足特定应用程序的需求。 带有 WebGL 的 CefSharp 利用 OpenGL/DirectX 进行硬件加速渲染,支持 3D 内容。
通过使用 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 的嵌入式网络浏览器。 以下是解释:
MainForm_FormClosing 事件可确保 Cef 资源在表单关闭时正确关闭。
有关使用 CefSharp 构建并可编译的应用程序的基本示例,请参见GitHub 上的最小示例项目. 项目源代码中提供了更复杂的示例项目。
集成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 内容。()`.表格关闭:通过调用`Cef.Shutdown'确保正确关闭 Cef 资源()表格关闭后
这段代码演示了一个简单的集成,即截取 Chromium 浏览器中加载的 HTML 内容,然后使用 IronPDF 转换成 PDF 文档。 根据您应用程序的具体需求定制 URL、错误处理和其他方面。 有关 IronPDF 文档的更多信息,请参阅IronPDF NuGet 软件包.
IronPDF 与 C# 应用程序中的 CefSharp 集成为管理文件和在线信息开辟了新的可能性。 通过将 IronPDF 的 PDF 生成功能与 CefSharp 提供的基于 Chromium 的浏览器相结合,开发人员可以创建灵活的应用程序,在生成高质量 PDF 文档的同时整合动态网页内容。
IronPDF 的 Lite 软件包售价为 $749,包括一年的软件维护合同、升级选项、永久许可证和三十天退款保证。 在为期三十天的试用期内,用户可以使用带水印的试用版在实际场景中对产品进行评估。 要了解有关 IronPDF 的成本、许可和免费版本的更多信息,请访问IronPDF 许可证信息. 有关 Iron Software 的更多信息,请访问其网站Iron Software 网站.
9个 .NET API 产品 用于您的办公文件