在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
開發人員現在可以輕鬆地將 Chromium 強大的網頁瀏覽器引擎整合到他們的 .NET 桌面應用程式和 WPF 應用程式中,這要歸功於 CefSharp,一個創新的 Chromium Embedded Framework 的 .NET 包裝器。 CefSharp 使 .NET 應用程式開發者能夠在自定義桌面介面內實現豐富的網頁體驗,讓他們能夠利用 Chromium 的網頁功能和開發者工具,且無需任何外部依賴。 憑藉其廣泛的新功能,例如自訂選項和對瀏覽器行為的控制,這個框架使整合現代網頁技術如HTML5、CSS3和JavaScript變得更加簡單。
CefSharp 的跨平台互操作性和網頁內容互動功能改變了用戶與桌面解決方案中的網頁內容互動和體驗,這既提升了桌面程序,又能在應用環境中提供動態的網頁瀏覽體驗。 在本文中,我們將通過代碼片段了解更多有關CefSharp開源版本的內容。
從 Visual Studio 專案中創建一個新的 Windows 表單。
安裝程式庫 CefSharp。
宣告 CefSharp 所需的物件,準備以最低需求進行編譯。
輸入需要載入的網址。
運行程式碼。
安裝 CefSharp.WinForms:
CefSharp是一個框架,改變了開發人員建構桌面應用程式和自動化專案的方式,透過將Chromium瀏覽器引擎的功能無縫整合進.NET應用程式中。 借助CefSharp,我們可以顯示遠端網頁內容,包括內嵌的支援HTML5建構的使用者介面。
在CefSharp介紹中需要強調的重要事項有:
靈活性和自訂化:CefSharp 為開發人員提供了極大的靈活性和自訂化的可能性,使他們能夠處理事件、執行 JavaScript、與在線內容互動,並修改瀏覽器行為以滿足特定的應用程序需求。 CefSharp 與 WebGL 一起使用,利用 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開發了一個基於Chromium的嵌入式網頁瀏覽器的基本WinForms應用程式。 以下是說明:
MainForm_FormClosing 事件確保在表單關閉時正確終止 Cef 資源。
以下是一些基本範例,使用 CefSharp 構建並準備編譯的應用程式可參考GitHub 上的簡單範例專案. 項目的來源中提供了更複雜的範例專案。
整合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
)使用 IronPDF 的 HtmlToPdf 功能將其轉換為 PDF 文件。 生成的 PDF 保存為 "Output.pdf"。表單關閉:使用 Cef.Shutdown
確保 Cef 資源正確關閉。()`在表單關閉後。
這段代碼演示了一個簡單的集成,其中在Chromium瀏覽器中加載的HTML內容被攔截,然後使用IronPDF轉換為PDF文檔。 根據您的應用程式特定需求自訂網址、錯誤處理和其他方面。 如需有關IronPDF文件的更多信息,請參閱IronPDF NuGet 套件.
將IronPDF與CefSharp集成到C#應用程式中,為管理文件和在線資訊開啟了新的可能性。 通過將IronPDF的PDF生成功能與CefSharp提供的基於Chromium的瀏覽器結合起來,開發人員可以創建靈活的應用程序,這些應用程序能夠生成高質量的PDF文檔,同時融入動態網頁內容。
IronPDF 的 Lite 套件售價為 $749,包括一年的軟體維護合約、升級選項、永久授權和三十天退款保證。 在三十天的試用期內,用戶可以使用帶有水印的試用版在實際場景中評估產品。 要了解有關 IronPDF 的成本、許可和免費版本的更多資訊,請造訪IronPDF Licensing Information. 如需有關 Iron Software 的更多資訊,請造訪他們的Iron Software 網站.
9 個 .NET API 產品 針對您的辦公文件