BlazorサーバーでRazorをPDFに変換する方法

BlazorサーバーでBlazorをPDFにC#変換する

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF の RenderRazorComponentToPdf メソッドを使用して、 Blazor Server でRazorコンポーネントを PDF に変換します。 C#のUIコンポーネントを最小限のコードでPDFに変換し、ヘッダー、フッター、ページフォーマットを完全にカスタマイズします。

クイックスタート: Razorコンポーネントを数分で PDF に変換する

IronPDF を使用して Blazor Server アプリケーションで Razor コンポーネントを PDF に変換します。 RenderRazorComponentToPdf メソッドは、数行のコードでRazorコンポーネントを PDF に変換します。 このガイドに従って、最小限のセットアップと柔軟なカスタマイズオプションで、RazorからPDFへの変換をプロジェクトに統合してください。

  1. IronPDF をNuGetパッケージマネージャでインストール

    PM > Install-Package IronPdf
  2. このコード スニペットをコピーして実行します。

    // インストール-パッケージ IronPdf.Extensions.Blazor
    var pdf = new IronPdf.ChromePdfRenderer()
        .RenderRazorComponentToPdf<MyComponent>(new Dictionary<string,object> { {"persons",personsList} })
        .SaveAs("component-to-pdf.pdf");
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronPDF を使い始めましょう無料トライアル

    arrow pointer

どの 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
PDF用C# NuGetライブラリ

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; }
    }
}
$vbLabelText   $csharpLabel

このモデルは、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としてレンダリングします。これにより、最新のウェブブラウザと同じ視覚的忠実性が維持されます。

Visual Studio debugging Blazor app with PDF generation code using ChromePdfRenderer and Razor components

生成された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 はあなたのデータです。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 17,803,474 | バージョン: 2026.3 リリース
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。