在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
開發人員現在可以輕鬆地將 Chromium 強大的網頁瀏覽器引擎整合到他們的 .NET 桌面應用程序和 WPF 應用程序中,這要歸功於 CefSharp,這是一個創新的 .NET 包裝器圍繞 Chromium Embedded Framework。CefSharp 為 .NET 應用程序開發人員提供了豐富的網頁體驗,使他們能夠利用 Chromium 的網頁功能和開發者工具,且無需任何外部依賴。通過它的廣泛新功能,例如自訂選項和對瀏覽器行為的控制,這個框架使得整合現代網頁技術如 HTML5、CSS3 和 JavaScript 更加容易。
CefSharp 的跨平台互操作性和網頁內容互動功能改善了使用者對桌面解決方案中網頁內容的互動和體驗,提升桌面程序,並在應用程序環境內提供動態的網頁瀏覽體驗。在本文中,我們將通過代碼片段了解更多關於 CefSharp 的開源版本。
從 Visual Studio 專案中創建一個新的 Windows Form。
安裝 CefSharp 庫。
宣告 CefSharp 所需的對象,以準備最低限度的編譯。
輸入需要加載的 URL。
安裝 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開發一個基於Chromium的嵌入式網頁瀏覽器的基本WinForms應用程式。以下是說明:
如需簡單示例,請參閱使用CefSharp構建的準備編譯的應用程式,參見 專案更複雜的示例項目可在項目的源代碼中找到。
整合 IronPDF將 PDF 生成功能與 CefSharp 的 Chromium 嵌入式框架結合 (CEF) 瀏覽器需要在.NET應用程式中同時使用CefSharp和IronPDF。然而,根據2022年1月的最新版本,目前沒有CefSharp和IronPDF之間直接現成的介面。
CefSharp的主要目標是將Chromium網頁瀏覽器引擎整合到.NET程式中,讓在線內容可以通過應用程式的用戶界面來顯示和互動。CefSharp為WPF和Windows Forms應用提供瀏覽器控制項。
雖然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文件。以下是說明:
ChromiumWebBrowser
控制項:該控制項載入特定的URL (在此範例中,"https://ironpdf.com/") 到瀏覽器並建立它的一個實例。LoadingStateChanged
事件:追蹤瀏覽器的加載進度。當頁面加載完成時 (e.IsLoading 為 false),ChromeBrowser 使用 GetSourceAsync
異步捕獲已加載頁面的 HTML 內容()`.htmlContent
) 轉換成PDF文件是通過IronPDF的HtmlToPdf功能完成的。生成的PDF文件會儲存為「Output.pdf」。Cef.Shutdown
。()` 在表單關閉後。此代碼展示了一個簡單的整合,其中在Chromium瀏覽器中加載的HTML內容被攔截,然後使用IronPDF轉換成PDF文件。根據您的應用需求,定製URL、錯誤處理和其他方面的設定。更多有關IronPDF文檔的資訊,請參閱 這裡.
將IronPDF與CefSharp集成到C#應用程式中,為管理文件和在線資訊打開了新的可能性。通過結合IronPDF的PDF生成功能和CefSharp提供的基於Chromium的瀏覽器,開發人員可以創建靈活的應用程式,這些應用程式可以生成高品質的PDF文檔,同時合并動態的網頁內容。
IronPDF的Lite方案售價為$749,包括一年的軟件維護合約、升級選項、永久許可以及三十天退款保證。在三十天試用期內,用戶可以使用帶水印的試用版本在實際情境中評估產品。欲了解更多關於IronPDF的價格、許可和免費版本的資訊,請訪問 連結有關Iron Software的更多資訊,請訪問他們的 網站.