.NET 帮助 Cefsharp.WPF.NET Core(开发者如何使用) Jacob Mellor 已更新:2026年1月18日 下载 IronPDF NuGet 下载 DLL 下载 Windows 安装程序 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 开发者现在可以轻松地将Chromium强大的Web浏览器引擎集成到他们的.NET桌面应用程序和WPF应用程序中,通过CefSharp,一个创新的.NET包装器,围绕Chromium嵌入式框架。 通过CefSharp,.NET应用程序开发者可以在定制的桌面界面中实现丰富的Web体验,使他们能够利用Chromium的Web功能和开发者工具,而无需任何外部依赖。 通过其广泛的功能选项,例如自定义选项和浏览器行为控制,这个框架使得整合现代Web技术如HTML5、CSS3和JavaScript更加容易。 用户与基于Web的内容在桌面解决方案中的交互和体验,通过CefSharp的跨平台互操作性和Web内容交互能力得以转变,从而提升桌面程序的水平,并在应用环境中实现动态的Web浏览体验。 在这篇文章中,我们将通过代码片段来更深入了解CefSharp的开源版本。 如何使用CefSharp 从Visual Studio项目中创建一个新的Windows窗体。 安装CefSharp库。 声明CefSharp所需的对象,这些对象已准备好进行最小化编译。 输入需要加载的URL。 运行代码。 安装CefSharp.WinForms: 使用Visual Studio的NuGet包管理器是安装CefSharp的最简单方法。 在Visual Studio中启动该项目。 在解决方案资源管理器中右键点击你的项目。 选择"管理NuGet包"。 转到"浏览"选项卡并搜索"CefSharp"。 选择适合你项目的CefSharp包(CefSharp.Wpf,CefSharp.WinForms等)。 点击"安装"将其包含到你的项目中。 CefSharp的重要性 CefSharp 是一个框架,它通过将Chromium的强大Web浏览器引擎无缝集成到.NET应用程序中,改变了开发者构建带有集成Web浏览功能的桌面应用和自动化项目的方式。 通过CefSharp的帮助,我们可以显示远程Web内容,包括使用HTML5支持构建的嵌入式UI。 在CefSharp引言中要强调的重要内容包括: Chromium Embedded Framework(CEF)作为CefSharp的框架,使得Chromium浏览器的功能能够集成到其他程序中。 通过使用Google的Chromium项目,CefSharp为桌面程序带来先进的Web功能。 .NET集成: CefSharp是一个功能强大的Cef的.NET包装。 它使程序员能够轻松地使用C#或其他.NET语言,将一个快速的Web浏览器集成到他们的桌面.NET应用程序中。 桌面应用中的Web浏览功能: 使用CefSharp,开发者可以轻松地将Web浏览功能集成到他们的桌面程序中。 这个功能为开发者提供无限可能,使得他们能够将在线内容融入用户界面或开发出具有Web功能的独特桌面应用。 它可以在JavaScript事件触发时接收回调。 富Web技术支持: 使用CefSharp,开发者可以利用Chromium提供的所有功能,包括支持最新的Web标准如HTML5,CSS3,JavaScript,WebGL和其他现代Web标准。 这使得在桌面程序中包含尖端的Web技术成为可能。 灵活性和自定义: CefSharp为开发者提供了极大的灵活性和自定义选项,使他们能够处理事件,执行JavaScript,与在线内容交互,并调整浏览器行为以满足特定应用需求。 支持使用WebGL的CefSharp,它利用OpenGL/DirectX进行硬件加速渲染,支持3D内容。 通过使用CefSharp,开发者可以通过促进Web浏览体验、鼓励用户交互以及在应用环境中提供丰富的现代信息来提升桌面应用程序。 代码示例: 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(); } } } $vbLabelText $csharpLabel 这个代码使用CefSharp来开发一个基于Chromium的嵌入式Web浏览器的基本WinForms应用程序。 这是解释: 使用CefSettings初始化CefSharp设置。 ChromiumWebBrowser: 这个类代表CefSharp提供的Web浏览器控件。 LoadingStateChanged事件处理浏览器的加载状态更改,例如,当页面加载完成时。 MainForm_FormClosing事件确保Cef资源在窗体关闭时正确关闭。 对于一个基本示例,使用CefSharp构建并准备编译的应用程序,请参见GitHub上的Minimal示例项目。 项目的源代码中提供了更复杂的示例项目。 CefSharp与IronPDF 将IronPDF的PDF生成功能与CefSharp的Chromium嵌入式框架(CEF)浏览器集成在.NET应用程序中需要同时使用CefSharp和IronPDF。 然而,到2022年1月的最新版本为止,在CefSharp和IronPDF之间没有直接的开箱即用接口。 CefSharp的主要目标是将Chromium Web浏览器引擎集成到.NET程序中,通过应用程序的用户界面显示和交互在线内容。 CefSharp为WPF和Windows窗体应用程序提供浏览器控件。 虽然CefSharp和IronPDF没有直接集成,但开发者仍然可以在同一应用程序环境中使用这两个库。 IronPDF在HTML到PDF转换方面表现出色,确保精确保留原始布局和样式。 它非常适合从基于Web的内容中创建PDF,如报告、发票和文档。 利用对HTML文件、URL和原始HTML字符串的支持,IronPDF轻松生成高质量的PDF文档。 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"); } } 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"); } } $vbLabelText $csharpLabel 安装IronPDF 要获取IronPDF库,你需要执行即将到来的步骤。 在包管理器中输入以下代码: Install-Package IronPdf dotnet add package IronPdf Install-Package IronPdf dotnet add package IronPdf SHELL 或者,你可以使用NuGet包管理器搜索包"IronPDF"。 从与IronPDF相关的所有NuGet包列表中,选择并下载所需的包。 Using IronPDF in CefSharp C# 要在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(); } } } $vbLabelText $csharpLabel 此代码展示了一个简单的集成,其中在加载的Chromium浏览器中拦截HTML内容,并使用IronPDF将其转换为PDF文档。 这是解释: 初始化CefSharp以将Chromium浏览器集成到Windows窗体应用程序中。 https://ironpdf.com/")加载到浏览器中并创建其实例。 LoadingStateChanged事件:跟踪浏览器的加载进度。 当页面加载完成时(GetSourceAsync()捕获加载页面的HTML内容。 IronPDF集成:捕获的HTML内容(htmlContent)使用IronPDF的HtmlToPdf功能转换为PDF文档。 生成的PDF被保存为"Output.pdf"。 窗体关闭:通过在窗体关闭后调用Cef.Shutdown()确保Cef资源正确关闭。 此代码展示了一个简单的集成,其中在加载的Chromium浏览器中拦截HTML内容,然后使用IronPDF将其转换为PDF文档。 根据你的应用程序的具体需求自定义URL、错误处理和其他方面。 有关IronPDF文档的详细信息,请参考IronPDF NuGet包。 结论 在C#应用程序中与CefSharp集成IronPDF为管理文档和在线信息打开了新的可能性。 结合IronPDF的PDF生成功能与CefSharp提供的基于Chromium的浏览器,开发者可以创建灵活的应用程序,而同时结合动态Web内容,生成高质量的PDF文档。 IronPDF的Lite包可用于$799,并包括一年软件维护合同、升级选项、永久许可证和三十天退款保证。 在三十天试用期内,用户可以通过带水印的试用版在实际场景中评估该产品。 要了解更多关于IronPDF的成本、许可和免费版本的信息,请访问IronPDF许可信息。 欲了解更多关于Iron Software的信息,请访问其Iron Software网站。 常见问题解答 如何将基于Chromium的Web浏览器集成到我的.NET桌面应用程序中? 您可以使用CefSharp,一个围绕Chromium嵌入式框架的.NET封装,将基于Chromium的Web浏览器轻松集成到您的.NET桌面应用程序中。这使您能够利用HTML5、CSS3和JavaScript等现代Web技术。 在WPF应用程序中设置CefSharp涉及哪些步骤? 要在WPF应用程序中设置CefSharp,请从Visual Studio中创建一个新项目开始。使用NuGet包管理器安装CefSharp.Wpf包,然后配置必要的设置以在您的应用程序中嵌入Chromium浏览器。 如何将Chromium浏览器中渲染的HTML内容转换为PDF文档? 要将Chromium浏览器中渲染的HTML内容转换为PDF,您可以先使用CefSharp渲染HTML,然后使用IronPDF的HtmlToPdf功能生成PDF文档。 CefSharp能与.NET应用中的PDF生成工具一起使用吗? 是的,CefSharp可以与IronPDF等PDF生成工具一起在.NET应用程序中使用。虽然没有直接集成,但您可以利用两者来渲染HTML内容并将其转换为PDF。 将CefSharp集成到.NET应用程序中有什么好处? 将CefSharp集成到.NET应用程序中提供了诸如能够直接在桌面应用程序中显示和交互现代Web内容的好处。它还允许开发人员自定义浏览器行为并使用HTML5、CSS3和JavaScript等Web技术。 在将CefSharp与.NET应用程序集成时,如何解决问题? 为解决CefSharp集成问题,请确保所有NuGet包已正确安装,检查与.NET版本的兼容性,并验证Visual Studio项目中的配置设置。 在.NET应用程序中是否可以自定义Chromium浏览器的行为? 是的,CefSharp允许开发人员自定义集成到.NET应用程序中的Chromium浏览器的行为,提供对浏览器设置的控制,并能够通过自定义代码扩展功能。 使用CefSharp和IronPDF的项目有什么好处? 需要显示动态Web内容并直接从该内容生成PDF报告或文档的项目受益于使用CefSharp和IronPDF。这种组合非常适合需要强大文件管理和Web内容渲染功能的应用程序。 Jacob Mellor 立即与工程团队聊天 首席技术官 Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。Jacob 拥有曼彻斯特大学土木工程一级荣誉工程学士学位(BEng)(1998-2001 年)。他的旗舰产品 IronPDF 和 Iron Suite for .NET 库在全球的 NuGet 安装量已超过 3000 万次,其基础代码继续为全球使用的开发人员工具提供动力。Jacob 拥有 25 年的商业经验和 41 年的编码专业知识,他一直专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。 相关文章 已更新2026年2月20日 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多 已更新2025年12月20日 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新2025年12月20日 C# String Equals(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 Npgsql C# .NET(开发人员如何使用)Microsoft Logging C#(开发者如...
已更新2026年2月20日 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多
已更新2025年12月20日 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多