C# を使用して Blazor Server で Razor を PDF に変換する PdfDocument
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
NuGetでインストール
インストール-パッケージ 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のプロジェクトテンプレート、または.NET CLIとdotnet new blazorserverを使用して、新しい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メソッドを使用してください。 このメソッドにアクセスするには、` クラスをインスタンス化してください。 このメソッドは、エクスポートやさらなる変更を行うための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 は、カスタム余白、レスポンシブデザインのためのビューポート設定、および動的コンテンツのための 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 はあなたのデータです。

