IronPDF Blazorサーバーチュートリアル:C#でHTMLをPDFにレンダリングする
IronPDFは.NET 6をサポートし、Blazorコンポーネントから直接PDF生成機能を提供し、最小限のセットアップでC#を使用したBlazor ServerアプリケーションのHTMLからPDFへの変換を可能にします。
クイックスタート: Blazor Server で PDF をレンダリングするBlazor ServerアプリケーションでIronPDFを使い始めましょう。 この例では、HTMLコンテンツをPDFにレンダリングする方法を示します。 数行のコードでBlazorコンポーネントをPDFに変換します。
-
1Install IronPDF with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath);IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath)IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath) -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronPDF を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- Blazorアプリケーション用HTML-to-PDFライブラリをインストールする。
- Visual Studioで新しいBlazorプロジェクトを作成してください。
- URLからウェブページをPDFドキュメントに変換する
- クライアントのウェブブラウザにウェブページをレンダリングする
- HTML文字列からPDFドキュメントを表示する
新しい Blazor Server プロジェクトを作成するには?
新しいプロジェクトを作成し、Blazorサーバーアプリのタイプを選択します。Visual Studioは、PDF生成に.NETを使用できるサーバーサイドBlazorアプリケーションを構築するためのテンプレートを提供します。 Blazor Serverホスティングモデルは、アプリケーションロジックをサーバー上で実行するため、サーバーサイド処理を必要とするPDF生成シナリオに適しています。

Blazorサーバーアプリの前提条件は何ですか?
IronPDFでBlazorサーバーアプリケーションを作成する前に、Visual Studio 2022以降がASP.NETとウェブ開発ワークロードと共にインストールされていることを確認してください。 .NET 6 SDK以上が必要です。 Blazor Serverアプリはサーバーへの常時接続を必要とするため、複雑なHTMLコンテンツからPDFを生成する必要がある場合や、サーバーに残すべき機密データを扱う場合に適しています。
ど for .NETバージョンを使うべきですか?
Blazor ServerアプリケーションでのIronPDFの互換性とパフォーマンスのために、.NET 6以上を使用してください。 IronPDF は .NET Core 3.1, .NET 5, .NET 6, .NET 7, .NET 8 と互換性があります。最新のLTSバージョン(.NET 6または.NET 8)は安定性と長期サポートを提供します。 Azureにデプロイする場合は、Azure App Serviceプランが選択した.NETバージョンをサポートしていることを確認してください。
プロジェクトの設定はどのようにすればよいですか?
Blazor Serverプロジェクトを設定する際、クライアントとサーバー間の安全な通信を確保するため、"Configure for HTTPS "を選択してください。 DockerでIronPDFを実行する予定がない限り、"Enable Docker "のチェックは外したままにしてください。 認証については、最初は"なし"を選択してください。 プロジェクト名はC#の命名規則に従い、スペースや特殊文字は避けてください。
BlazorプロジェクトにIronPDFをインストールするには?
プロジェクトを作成した後、以下の手順に従ってIronPDF library from NuGetをVisual Studioにインストールしてください。 IronPDFはHTML文字列、URL、既存のPDFドキュメントからPDFを作成するためのAPIを提供します。
- Visual Studioのソリューションエクスプローラーウィンドウで
Manage NuGet Packagesを選択します。 - ブラウズを選択し、
IronPdfを検索します。 - パッケージの最新バージョンを選択し、プロジェクトのチェックボックスを確認してインストールをクリックします。
または、.NET CLIを使用してインストールできます:
特定のプラットフォームをターゲットとするプロジェクトでは、プラットフォーム固有のパッケージが必要になる場合があります。 たとえば、Linuxにデプロイする場合は、Linuxインストールガイドを確認してください。
なぜ CLI よりも NuGet Package Manager を選ぶのですか?
Visual StudioのNuGet Package Manager GUIは、パッケージバージョンの参照、依存関係の表示、複数のプロジェクトの同時管理を容易にするビジュアルインターフェイスを提供します。 IronPDFを初めて使う開発者が、利用可能なパッケージとその説明を調べるのに役立ちます。 CLIアプローチは、経験豊富な開発者にとってより速く、自動化されたビルドパイプラインやDockerコンテナで作業する場合に適しています。
どのバージョンのIronPDFをインストールすべきですか?
IronPDFの最新安定版をインストールすることで、新機能、パフォーマンス向上、セキュリティアップデートにアクセスできます。 最近のアップデートの詳細については、更新履歴を確認してください。 既存のプロジェクトで作業している場合は、他の依存関係とのバージョンの互換性を確認してください。 本番環境では、メジャーバージョンをアップグレードする前に十分にテストしてください。
インストールが成功したことを確認するにはどうすればよいですか?
インストール後、ソリューションエクスプローラーの "Packages "フォルダを確認し、IronPDFが正しくインストールされていることを確認してください。 プロジェクトの依存関係の中に "IronPDF" が表示されるはずです。 C#ファイルにusing IronPdf;を追加してください - IntelliSenseが名前空間を認識するはずです。 また、HTMLから基本的なPDFを作成して簡単なテストを実行し、すべてが正しく動作することを確認することもできます。
PDF生成用の新しいRazorコンポーネントを追加するには?
IronPDFをBlazorプロジェクトにインストールしたら、新しいRazorコンポーネントを追加してください。 このチュートリアルのためにそれにIronPdfComponentと名前を付けてください。 このコンポーネントは、ユーザー入力を処理し、HTMLコンテンツに基づいて動的にPDFを生成します。 Blazorのコンポーネントアーキテクチャにより、アプリケーション全体で共有できる再利用可能なPDF生成機能を簡単に作成することができます。

その後、コードを以下のように更新します:
@page "/IronPdf"
@inject IJSRuntime JS
<h3>IronPdfComponent</h3>
<EditForm Model="@_InputMsgModel" id="inputText">
<div>
<InputTextArea @bind-Value="@_InputMsgModel.HTML" rows="20" />
</div>
<div>
<button type="button" @onclick="@SubmitHTML">Render HTML</button>
</div>
</EditForm>
@code {
// Model to bind user input
private InputHTMLModel _InputMsgModel = new InputHTMLModel();
private async Task SubmitHTML()
{
// Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
// Create a renderer to convert HTML to PDF
var render = new IronPdf.ChromePdfRenderer();
// Configure rendering options for better output
render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
render.RenderingOptions.MarginTop = 40;
render.RenderingOptions.MarginBottom = 40;
// Render the HTML input into a PDF document
var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);
var fileName = "iron.pdf";
// Create a stream reference for the PDF content
using var streamRef = new DotNetStreamReference(stream: doc.Stream);
// Invoke JavaScript function to download the PDF in the browser
await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
}
public class InputHTMLModel
{
public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1>
<p>This is a sample PDF generated from HTML content in Blazor Server.</p>
<ul>
<li>Easy to use API</li>
<li>High-quality rendering</li>
<li>Full HTML5 and CSS3 support</li>
</ul>";
}
}@code {
// Model to bind user input
private InputHTMLModel _InputMsgModel = new InputHTMLModel();
private async Task SubmitHTML()
{
// Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
// Create a renderer to convert HTML to PDF
var render = new IronPdf.ChromePdfRenderer();
// Configure rendering options for better output
render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
render.RenderingOptions.MarginTop = 40;
render.RenderingOptions.MarginBottom = 40;
// Render the HTML input into a PDF document
var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);
var fileName = "iron.pdf";
// Create a stream reference for the PDF content
using var streamRef = new DotNetStreamReference(stream: doc.Stream);
// Invoke JavaScript function to download the PDF in the browser
await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
}
public class InputHTMLModel
{
public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1>
<p>This is a sample PDF generated from HTML content in Blazor Server.</p>
<ul>
<li>Easy to use API</li>
<li>High-quality rendering</li>
<li>Full HTML5 and CSS3 support</li>
</ul>";
}
}Imports System.Threading.Tasks
Imports Microsoft.JSInterop
Imports IronPdf
@Code
' Model to bind user input
Private _InputMsgModel As New InputHTMLModel()
Private Async Function SubmitHTML() As Task
' Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
' Create a renderer to convert HTML to PDF
Dim render = New IronPdf.ChromePdfRenderer()
' Configure rendering options for better output
render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
render.RenderingOptions.MarginTop = 40
render.RenderingOptions.MarginBottom = 40
' Render the HTML input into a PDF document
Dim doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML)
Dim fileName = "iron.pdf"
' Create a stream reference for the PDF content
Using streamRef = New DotNetStreamReference(stream:=doc.Stream)
' Invoke JavaScript function to download the PDF in the browser
Await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef)
End Using
End Function
Public Class InputHTMLModel
Public Property HTML As String = "<h1>Welcome to IronPDF</h1>
<p>This is a sample PDF generated from HTML content in Blazor Server.</p>
<ul>
<li>Easy to use API</li>
<li>High-quality rendering</li>
<li>Full HTML5 and CSS3 support</li>
</ul>"
End ClassImports System.Threading.Tasks
Imports Microsoft.JSInterop
Imports IronPdf
@Code
' Model to bind user input
Private _InputMsgModel As New InputHTMLModel()
Private Async Function SubmitHTML() As Task
' Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
' Create a renderer to convert HTML to PDF
Dim render = New IronPdf.ChromePdfRenderer()
' Configure rendering options for better output
render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
render.RenderingOptions.MarginTop = 40
render.RenderingOptions.MarginBottom = 40
' Render the HTML input into a PDF document
Dim doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML)
Dim fileName = "iron.pdf"
' Create a stream reference for the PDF content
Using streamRef = New DotNetStreamReference(stream:=doc.Stream)
' Invoke JavaScript function to download the PDF in the browser
Await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef)
End Using
End Function
Public Class InputHTMLModel
Public Property HTML As String = "<h1>Welcome to IronPDF</h1>
<p>This is a sample PDF generated from HTML content in Blazor Server.</p>
<ul>
<li>Easy to use API</li>
<li>High-quality rendering</li>
<li>Full HTML5 and CSS3 support</li>
</ul>"
End Classこのコンポーネントは、PDF生成にChromePdfRendererクラスを使用します。 カスタム用紙サイズ、余白、ヘッダー/フッターなど、さまざまなオプションでレンダリングをカスタマイズできます。
こ for JavaScriptコードを_layout.cshtmlに追加して、BlazorアプリケーションでIronPDFによってレンダリングされたPDFのダウンロードを許可します:
<script>
// JavaScript function to download PDFs generated by IronPdf
window.SubmitHTML = async (fileName, contentStreamReference) => {
// Get the PDF content as an ArrayBuffer
const arrayBuffer = await contentStreamReference.arrayBuffer();
// Create a Blob from the ArrayBuffer
const blob = new Blob([arrayBuffer]);
// Create an object URL for the Blob
const url = URL.createObjectURL(blob);
// Create an anchor element to initiate the download
const anchorElement = document.createElement("a");
anchorElement.href = url;
anchorElement.download = fileName ?? "download.pdf";
// Programmatically click the anchor to start the download
anchorElement.click();
// Clean up by removing the anchor and revoking the object URL
anchorElement.remove();
URL.revokeObjectURL(url);
};
</script>
共有フォルダ内のNavMenu.razorファイルを編集し、新しいRazorコンポーネントへのナビゲーションタブを追加してください。 以下のコードを追加してください:
<div class="nav-item px-3">
<NavLink class="nav-link" href="IronPdf">
<span class="oi oi-list-rich" aria-hidden="true"></span> IronPdf
</NavLink>
</div>
これがすべて適用されたら、ソリューションを実行し、このように表示されるはずです:

なぜBlazorでPDFダウンロードにJavaScriptを使うのですか?
Blazor Server は SignalR 接続で動作し、すべての C# コードはサーバー上で実行されます。 ファイルダウンロードのようなブラウザ固有のアクションをトリガーするには、JavaScriptの相互運用が必要です。 DotNetStreamReferenceクラスは、PDF全体をメモリに一度に読み込むことなく、バイナリデータをサーバーからクライアントに転送します。 このアプローチは、base64エンコーディングよりも効率的で、大きなPDFにも有効です。 別のアプローチとしては、PDFをメモリストリームにエクスポートするを検討してください。
PDFダウンロードを実装する際によくある問題とは
一般的な課題としては、SignalR接続がタイムアウトする可能性のある大容量ファイルの処理、並行するPDF生成リクエストの管理、リソースの適切な廃棄などがあります。 メモリリークを避けるために、PDFドキュメントおよびMemoryStreamsを適切に破棄してください。 より良いパフォーマンスのために、asyncPDF生成の実装を検討してください。 レンダリングの問題が発生した場合は、レンダリング オプション ドキュメントで設定のヒントを確認してください。
大きなPDFファイルをどのように扱えばよいですか?
大きなPDFの場合は、進捗インジケータとチャンクダウンロードの実装を検討してください。 圧縮技術を使ってPDFサイズを最適化することができます。 Blazor サーバー設定で適切なタイムアウトを設定してください:
services.AddServerSideBlazor()
.AddHubOptions(options =>
{
options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MB
options.ClientTimeoutInterval = TimeSpan.FromSeconds(60);
});services.AddServerSideBlazor()
.AddHubOptions(options =>
{
options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MB
options.ClientTimeoutInterval = TimeSpan.FromSeconds(60);
});netnet非常に大きなドキュメントの場合、最初にサーバーストレージに保存し、直接ストリーミングする代わりにダウンロードリンクを提供することを検討してください。
ストリーム参照と直接ダウンロードはいつ使い分けるべきですか?
即時のダウンロードが必要な50MB未満のPDFにはDotNetStreamReferenceを使用してください。 ファイルサイズが大きい場合や、PDFをディスクに保存する必要がある場合は、サーバー上でPDFを生成し、ダウンロードリンクを提供することを検討してください。 レポートや請求書は直接ダウンロードするのが効果的ですが、バッチ処理や複数のPDFをマージするにはサーバーサイドのストレージが有効です。 アプローチを選択する際には、アプリケーションのメモリ制約とユーザーエクスペリエンスの要件を考慮してください。
よくある質問
PDF 生成用の Blazor Server プロジェクトを新規作成するには?
IronPDFでBlazor Serverプロジェクトを作成するには、Visual Studioでプロジェクトの種類として'Blazor Server App'を選択します。Blazor Serverホスティングモデルはサーバー上でアプリケーションロジックを実行するため、IronPDFでサーバーサイド処理を必要とするPDF生成シナリオに最適です。
Blazor ServerアプリをPDF生成で使用するための前提条件は何ですか?
ASP.NETおよびWeb開発ワークロードを搭載したVisual Studio 2022以降と、.NET 6 SDK以降が必要です。Blazor Serverアプリは常時サーバー接続を必要とするため、IronPDFを使用して複雑なHTMLコンテンツからPDFを生成する場合や、サーバーに残すべき機密データを扱う場合に適しています。
BlazorでのPDF生成には、ど for .NETバージョンを使うべきですか?
Blazor ServerアプリケーションでIronPDFの互換性とパフォーマンスを最適化するには、.NET 6以上を使用してください。IronPDFは.NET Core 3.1, .NET 5, .NET 6, .NET 7, .NET 8をサポートしています。最新のLTSバージョン(.NET 6または.NET 8)は安定性と長期サポートを提供します。
Blazor PDFアプリケーションのプロジェクト設定はどのように行うのですか?
IronPDF用にBlazor Serverプロジェクトを設定する際、安全な通信のために'Configure for HTTPS'を選択してください。DockerコンテナでIronPDFを実行する予定がない限り、'Enable Docker'のチェックは外したままにしてください。認証は'None'から始めてください。スペースや特殊文字を使用せず、適切なC#命名規則を使用してください。
Blazor ServerでHTMLからPDFを素早く生成するには?
IronPDFはBlazor ServerでHTMLをPDFに変換するシンプルなワンラインソリューションを提供します:IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath).これにより、最小限のコードでBlazorコンポーネントをPDFに変換することができます。
Blazor で PDF 生成を実装するための最小限のワークフローを教えてください。
最小限のワークフローは5つのステップで構成されています:1) HTML-to-PDFライブラリIronPDFをインストール、2) Visual Studioで新しいBlazorプロジェクトを作成、3) URLによるウェブページをIronPDFを使ってPDFドキュメントに変換、4) ウェブページをクライアントのウェブブラウザにレンダリング、5) HTML文字列から生成されたPDFドキュメントを表示。
Why is JavaScript necessary for PDF downloads in Blazor applications using IronPDF?
In Blazor Server, C# code executes on the server, requiring JavaScript interop to handle client-side functionalities like file downloads. The DotNetStreamReference class facilitates efficient PDF transmission from server to client, avoiding large memory usage.
What should I consider when handling large PDFs using IronPDF in Blazor applications?
When managing large PDFs, utilize progress indicators and chunked downloads. Optimize PDF size through compression and configure appropriate server settings to manage the maximum message size and timeouts, ensuring efficient handling of large documents.
Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。