ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
開発者は、現在、Chromiumの強力なウェブブラウザーエンジンを、.NETデスクトップアプリおよびWPFアプリにCefSharpを使用して簡単に統合できます。CefSharpは、Chromium Embedded Frameworkを取り囲む革新的な.NETラッパーです。 .NETアプリ開発者がカスタマイズされたデスクトップインターフェース内でリッチなウェブ体験を提供することを可能にするのが、CefSharpです。これにより、外部依存関係なしにChromiumのウェブ機能や開発者ツールを活用することができます。 カスタマイズオプションやブラウザの動作制御など、幅広い新機能を備えたこのフレームワークは、HTML5、CSS3、JavaScriptといった最新のウェブ技術を統合することを容易にします。
CefSharpのクロスプラットフォームの相互運用性およびウェブコンテンツの相互作用機能によって、ユーザーのデスクトップソリューションにおけるウェブベースのコンテンツとのやり取りと体験が変革され、デスクトッププログラムが向上し、アプリケーション環境内でダイナミックなウェブサーフィン体験が可能になります。 この記事では、コードスニペットを使用してCefSharpのオープンソース版について詳しく見ていきます。
Visual Studioプロジェクトから新しいWindowsフォームを作成します。
ライブラリ CefSharp をインストールします。
CefSharpの最小限でコンパイルが可能な必須オブジェクトを宣言します。
読み込む必要があるURLを入力してください。
コードを実行してください。
CefSharp.WinForms をインストール:
CefSharp(Chromium Embedded Framework for .NET)は、IronPDFでPDF機能を強化するために重要な役割を果たします。それは、Webベースのコンテンツを表示および操作するための強力なツールを提供し、開発者がWebページをPDFファイルに変換する際の精度と柔軟性を高めます。CefSharpを使用することで、最新のWeb標準に準拠した高品質なPDF生成が可能となり、ユーザーに優れたエクスペリエンスを提供できます。また、IronPDFの機能をフルに活用するためには、CefSharpの理解と適切な実装が不可欠です。
CefSharpは、開発者がデスクトップアプリと自動化プロジェクトを構築する際に、統合されたウェブサーフィン機能のあるChromiumのウェブブラウザーエンジンの力を.NETアプリケーションに簡単に統合することで、その方法を大きく変えるフレームワークです。 CefSharpの助けを借りて、HTML5サポートを備えた埋め込みUIを含むリモートウェブコンテンツを表示することができます。
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を使用してChromiumに基づく埋め込みWebブラウザーを備えた基本的なWinFormsアプリケーションを開発します。 以下は説明です。
MainForm_FormClosing イベントは、フォームを閉じる際にCefリソースが適切にシャットダウンされることを保証します。
基本的な例として、コンパイルの準備ができたCefSharpを使用して構築されたアプリについては、 를 참조してくださいGitHub上の最小限のサンプルプロジェクト. このプロジェクトのソースには、より複雑なサンプルプロジェクトが含まれています。
統合するIronPDFCefSharpのChromium Embedded Frameworkを使用したPDF生成機能(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と統合するには、2つの手順を実行する必要があります。まず、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は、ロードされたページのHTMLコンテンツを非同期にキャプチャするためにGetSourceAsync
を使用します()`.htmlContent
)は、IronPDFのHtmlToPdf機能を使用してPDFドキュメントに変換されます。 生成されたPDFは「Output.pdf」として保存されます。フォームの閉じる: Cef.Shutdown
を呼び出してCefリソースを適切にシャットダウンすることを確認してください。()フォームが閉じられた後。
このコードは、Chromiumブラウザーで読み込まれたHTMLコンテンツをインターセプトし、IronPDFを使用してPDFドキュメントに変換するシンプルな統合を示しています。 アプリケーションの特定のニーズに応じて、URL、エラーハンドリング、および他の側面をカスタマイズします。 IronPDFドキュメントの詳細についてはIronPDF NuGetパッケージ.
C#アプリケーションにおけるIronPDFとCefSharpの統合により、ドキュメントやオンライン情報の管理に新たな可能性が広がります。 IronPDFに搭載されたPDF生成機能をCefSharpのChromiumベースのブラウザと組み合わせることで、開発者は動的なWebコンテンツを取り入れながら高品質なPDFドキュメントを生成できる柔軟なアプリケーションを作成することができます。
IronPDFのLiteパッケージは、$liteLicenseで利用可能であり、1年間のソフトウェアメンテナンス契約、アップグレードオプション、永久ライセンス、および30日間の返金保証が含まれます。 30日間の試用期間中、ユーザーはウォーターマーク付き試用版を使用して、現実のシナリオで製品を評価できます。 以下のURLにアクセスして、IronPDF のコスト、ライセンス、無料バージョンについて詳しく学んでください: IronPDFライセンス情報. Iron Softwareについての詳細は、以下のサイトをご覧ください。Iron Software ウェブサイト.
9つの .NET API製品 オフィス文書用