C#でBlazor ServerのRazorコンポーネントをPDFに変換する方法
IronPDF の RenderRazorComponentToPdf メソッドを使用して、 Blazor Server でRazorコンポーネントを PDF に変換します。 C#のUIコンポーネントを最小限のコードでPDFに変換し、ヘッダー、フッター、ページフォーマットを完全にカスタマイズします。
クイックスタート: Razorコンポーネントを数分で PDF に変換する
IronPDF を使用して Blazor Server アプリケーションで Razor コンポーネントを PDF に変換します。 RenderRazorComponentToPdf メソッドは、数行のコードでRazorコンポーネントを PDF に変換します。 このガイドに従って、最小限のセットアップと柔軟なカスタマイズオプションで、RazorからPDFへの変換をプロジェクトに統合してください。
-
IronPDF をNuGetパッケージマネージャでインストール
PM > Install-Package IronPdf -
このコード スニペットをコピーして実行します。
// インストール-パッケージ IronPdf.Extensions.Blazor var pdf = new IronPdf.ChromePdfRenderer() .RenderRazorComponentToPdf<MyComponent>(new Dictionary<string,object> { {"persons",personsList} }) .SaveAs("component-to-pdf.pdf"); -
実際の環境でテストするためにデプロイする
今日プロジェクトで IronPDF を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- BlazorサーバーでIronPdfをPDFに変換するためのC#ライブラリをダウンロードする。
- データ用のモデルクラスを追加する
- 新しい Razor コンポーネントを作成し、`RenderRazorComponentToPdf` メソッドを使用します。
- 左メニューに新しいRazorコンポーネントにアクセスするためのセクションを追加します。
- クイックスタート用のサンプルプロジェクトをダウンロード
どの NuGet パッケージが Razor から PDF への変換に必要ですか?
IronPdf.Extensions.Blazorパッケージは、メインのIronPdfパッケージを拡張しています。 Blazor Server App で Razor コンポーネントを PDF ドキュメントにレンダリングするには、両方のパッケージが必要です。この拡張機能は Blazor Server アプリケーションに統合ポイントを提供し、大規模なリファクタリングなしに既存の Razor コンポーネントを PDF に変換できるようにします。
IronPdf.Extensions.Blazorをインストールすると、自動的にIronPDFライブラリのコアが依存関係に含まれます。 拡張パッケージは、Blazor のコンポーネント モデルを理解し、バインドされたデータを使用してコンポーネントを適切にレンダリングする RenderRazorComponentToPdf のようなメソッドを追加します。 最適なパフォーマンスと最新機能のために、両方のパッケージの最新バージョンを使用してください。 更新や改善については変更履歴を確認してください。
インストール-パッケージ IronPdf.Extensions.Blazor
Install with NuGet
Install-Package IronPdf.Extensions.Blazor
BlazorサーバーでRazorコンポーネントをPDFにレンダリングするには?
RazorコンポーネントをPDFに変換するには、Blazor Server Appプロジェクトが必要です。 Blazor Serverアプリケーションはサーバー上で実行され、SignalR接続を介してUI更新をレンダリングするため、サーバーサイド処理が必要なPDF生成に適しています。 このアーキテクチャでは、PDFのレンダリングがサーバー上で行われるため、クライアントのブラウザやデバイスに関係なく、一貫した結果が得られます。
作業を開始する前に、.NET SDKがインストールされており、Visual Studio 2019以降でASP.NETおよびWeb開発作業負荷があることを確認してください。 Visual Studio のプロジェクト テンプレートを使用するか、dotnet new blazorserver を使用して.NET CLI を使用し、新しいBlazor Server アプリを作成します。 詳細なインストール手順とプラットフォーム固有の要件については、インストールの概要を参照してください。
どのようなモデルクラス構造を使うべきですか?
PersonInfoという名前の標準C#クラスを追加します。 このクラスは、人物情報を格納するためのモデルとして機能します。 次のコードを挿入してください。
:path=/static-assets/pdf/content-code-examples/how-to/razor-to-pdf-blazor-server-model.cs
namespace BlazorSample.Data
{
public class PersonInfo
{
public int Id { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
}
Namespace BlazorSample.Data
Public Class PersonInfo
Public Property Id() As Integer
Public Property Name() As String
Public Property Title() As String
Public Property Description() As String
End Class
End Namespace
このモデルは、Razorコンポーネントに渡され、PDFでレンダリングされるデータ構造を表しています。 IronPdfはシンプルなPOCOから複雑なEntity Frameworkモデルまで、どのようなC#オブジェクトモデルでも動作します。 PDF生成のためのモデルを設計するときは、最終的な文書でデータがどのように表示されるかを考慮し、それに応じてプロパティを構成します。
PDF生成用のRazorコンポーネントを実装するには?
Razorコンポーネントを PDF に変換するには、RenderRazorComponentToPdf メソッドを使用します。 ChromePdfRendererクラスをインスタンス化してこのメソッドにアクセスします。 このメソッドは、エクスポートまたはさらなる変更のためにPdfDocumentオブジェクトを返します。
返されるPdfDocumentは、PDF/AまたはPDF/UA形式への変換を含む、さらなる修正をサポートします。 ドキュメントのマージや分割、ページの回転、注釈やブックマークの追加ができます。 必要に応じて、カスタム透かしを適用してください。
Person.razorという名前のRazorコンポーネントを追加します。 次のコードを入力してください。
@page "/Person"
@using BlazorSample.Data;
@using IronPdf;
@using IronPdf.Extensions.Blazor;
<h3>Person</h3>
@code {
// A parameter to receive a list of persons from the parent component.
[Parameter]
public IEnumerable<PersonInfo> persons { get; set; }
// Dictionary to hold parameters that will be passed to the PDF renderer.
public Dictionary<string, object> Parameters { get; set; } = new Dictionary<string, object>();
protected override async Task OnInitializedAsync()
{
// Initialize the persons list with some sample data.
persons = new List<PersonInfo>
{
new PersonInfo { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new PersonInfo { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new PersonInfo { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
}
private async void PrintToPdf()
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Apply text footer to the PDF pages.
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
LeftText = "{date} - {time}",
DrawDividerLine = true,
RightText = "Page {page} of {total-pages}",
Font = IronSoftware.Drawing.FontTypes.Arial,
FontSize = 11
};
Parameters.Add("persons", persons);
// Render Razor component to PDF and save it.
PdfDocument pdf = renderer.RenderRazorComponentToPdf<Person>(Parameters);
File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData);
}
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in persons)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<button class="btn btn-primary" @onclick="PrintToPdf">Print to Pdf</button>
このメソッドは、すべてのRenderingOptions機能へのアクセスを提供します。 テキストとHTMLのヘッダーとフッターを追加し、ページ番号を含め、ページの寸法とレイアウトを調整します。 RenderingOptions は、カスタム マージン、レスポンシブ デザインのビューポート設定、および動的コンテンツ for JavaScript実行遅延をサポートします。
複雑なレイアウトやBootstrapのようなCSSフレームワークでは、レスポンシブCSSレンダリング機能を検討し、さまざまなページサイズでPDFが正しく表示されるようにします。
どのように Razor コンポーネントにナビゲーションを追加しますか?
- "共有フォルダー"に移動し、
NavMenu.razorを開きます。 Razorコンポーネントを開くセクションPersonを追加します。Personコンポーネントが 2 番目のオプションになります。
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
<nav class="flex-column">
<div class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="oi oi-home" aria-hidden="true"></span> Home
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="Person">
<span class="oi oi-list-rich" aria-hidden="true"></span> Person
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="counter">
<span class="oi oi-plus" aria-hidden="true"></span> Counter
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="fetchdata">
<span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
</NavLink>
</div>
</nav>
</div>
このナビゲーション設定はBlazorのルーティングシステムと統合されており、ユーザーはアプリケーションのメインナビゲーションメニューからPDF生成機能にアクセスすることができます。 NavLink コンポーネントは、アクティブなルートの適切な強調表示を保証します。
PDF生成プロセスはどのようなものですか?
プロジェクトを実行し、PDFドキュメントを生成します。 Print to PDF "ボタンをクリックしてください。 IronPDFはRazorコンポーネントを処理し、HTMLに変換し、Chromeベースのレンダリングエンジンを使ってPDFとしてレンダリングします。これにより、最新のウェブブラウザと同じ視覚的忠実性が維持されます。
生成されたPDFは、プロジェクトの出力ディレクトリに保存されます。 保存場所をカスタマイズしたり、ブラウザから直接ダウンロードしたり、Azure Blob StorageのようなクラウドストレージにPDFを保存したりすることができます。 本番アプリケーションでは、PDFの生成に失敗したり、予想時間を超えたりする可能性のあるシナリオについて、エラー処理とユーザーフィードバックを実装します。
完全な実例はどこでダウンロードできますか?
このガイドの完全なコードをzipファイルとしてダウンロードしてください。Blazor Server AppプロジェクトとしてVisual Studioで開いてください。 サンプルには、BlazorアプリケーションでPDF変換をすぐに開始できるように、すべての依存関係、設定、サンプルコードが含まれています。
RazorからPDFへの変換用のBlazorサンプルプロジェクトをダウンロード
次に何ができるのかを見てみましょうか? 私たちのチュートリアルページをご覧ください: PDFの変換
より高度なシナリオについては、Blazorチュートリアルをご覧ください。BlazorアプリケーションでIronPDFを使用するための追加の統合パターンとベストプラクティスをカバーしています。
よくある質問
Blazor ServerでRazorコンポーネントをPDFに変換する最速の方法は何ですか?
最速の方法はIronPDFのRenderRazorComponentToPdfメソッドを使うことです。たった1行のコードでRazorコンポーネントをPDFに変換することができます: var pdf = new IronPDF.ChromePdfRenderer().RenderRazorComponentToPdf(new Dictionary { {"persons",personsList} }).SaveAs("component-to-pdf.pdf");
Blazor ServerでのPDF変換にはどのNuGetパッケージが必要ですか?
IronPDF.Extensions.Blazorパッケージが必要で、依存関係として自動的にコアIronPDFライブラリが含まれます。これをインストールしてください:インストール-パッケージIronPDF.Extensions.Blazor
RazorコンポーネントをPDFに変換する際、カスタムヘッダーやカスタムフッターを追加できますか?
はい、IronPDFはRenderRazorComponentToPdfメソッドを使用してRazorコンポーネントを変換する際に、ヘッダー、フッター、ページフォーマットのフルカスタマイズオプションを提供します。
Blazor コンポーネントからの PDF 生成に Blazor Server を推奨する理由は?
Blazor Serverアプリケーションはサーバー上で実行され、SignalR接続を介してUI更新をレンダリングするため、PDF生成に最適です。このアーキテクチャにより、IronPDFのレンダリングはサーバーサイドで行われ、クライアントのブラウザやデバイスに関係なく一貫した結果を提供します。
既存のRazorコンポーネントをPDFに変換するためにリファクタリングする必要がありますか?
いいえ、IronPDF.Extensions.Blazorパッケージを使えば、大規模なリファクタリングなしに既存のBlazorコンポーネントをPDFに変換することができます。この拡張機能はBlazorのコンポーネントモデルを理解する統合ポイントを提供します。
PDF に変換するとき、Razor コンポーネントにデータを渡すにはどうすればよいですか?
RenderRazorComponentToPdf メソッドでは、Dictionary パラメータを使用してデータを渡すことができます。例: new Dictionary { {"persons", personsList} ここで、"persons" はパラメータです。ここで、"persons" はパラメータ名で、personsList はあなたのデータです。

