フッターコンテンツにスキップ
IRONPDFの使用
BlazorでHTMLをPDFにIronPDFを使用して変換する方法

BlazorチュートリアルでPDFファイルを作成する

IronPDFは、著名なC#ライブラリであり、Blazorアプリケーションで動作します。 このレビューでは、IronPDFを使用してBlazorアプリケーションにPDFレポートを埋め込む方法をガイドし、そのシームレスな統合と効果を紹介します。

class="hsg-featured-snippet">

BlazorでPDFファイルを作成する方法

  1. Visual Studioで新しいBlazorプロジェクトを作成する
  2. Blazorアプリケーション用のHTML-to-PDFライブラリをインストールする
  3. URLからウェブページのPDF文書を作成する
  4. HTML文字列からPDF文書を作成する

1. IronPDFの機能

開発者は、強力なIronPDF .NET PDFライブラリの助けを借りて、PDF文書を迅速に作成、読み取り、および処理できます。 IronPDFには組み込みのChromeエンジンがあり、豊富で強力な機能を提供します。 これには、HTML5、JavaScript、CSS、画像をPDFに変換する機能、PDF文書に独自のヘッダーとフッターを追加する機能、ウェブブラウザで表示される通りにPDFを生成する機能が含まれます。 IronPDFは、HTML、ASPX、Razor Pages、MVCフレームワークなど、さまざまなウェブ技術をサポートしています。

IronPDFの主な特長は以下の通りです。

2. Blazorとは何ですか?

Blazorは、Webアセンブリを使用してC#とHTMLでクライアントサイドWebアプリケーションを作成することが可能なWebアプリケーションフレームワークです。

Webアセンブリアプリは、ブラウザにネイティブに近い速度で動作可能なバイナリ命令形式で送信されます。 これにより、ブラウザ内でC#のような言語を実行する新しい可能性が生まれました。

Visual Studioでの新しいプロジェクトの作成

まず、Microsoft Visual Studio アプリケーションを開き、ファイルメニューから「新しいプロジェクト」を選択します。 次に、「Blazor Server App」を選択します。

BlazorチュートリアルでPDFファイルを作成、図1: Visual Studioで新しいプロジェクトを作成 Visual Studioで新しいプロジェクトを作成する

プロジェクト名を入力し、ファイルパスを選択します。 次に、作成ボタンをクリックします。

BlazorチュートリアルでPDFファイルを作成、図2: 新しいBlazorアプリケーションの名前と場所を選択 新しいBlazorアプリケーションの名前と場所を選択する

希望の.NET Frameworkを選択します(このチュートリアルでは.NET 6.0を使用します)。以下のスクリーンショットを参照してください。

BlazorチュートリアルでPDFファイルを作成、図3: .NET 6.0 Frameworkを使用したVisual Studioでの新しいプロジェクトの作成 .NET 6.0 Frameworkを使用したVisual Studioでの新しいプロジェクトの作成

Microsoft Visual Studioは、このBlazorアプリケーションの構造を生成します。

次に、この新しいプロジェクトにIronPDFライブラリを追加してください。

3. IronPDFライブラリのインストール

IronPDFライブラリは4つの方法でダウンロードおよびインストールできます。

  • Visual StudioのNuGetパッケージマネージャーを使用
  • Visual Studioのコマンドラインを使用
  • NuGet ウェブサイトから直接ダウンロード
  • IronPDFウェブサイトから直接ダウンロード

3.1 Visual StudioのNuGetパッケージマネージャーを使用

Visual StudioはNuGetパッケージマネージャーを提供し、プロジェクトにライブラリを直接インストールするのを助けます。 * 無制限のロケーション

BlazorチュートリアルでPDFファイルを作成、図4: Visual StudioのNuGetパッケージマネージャーへのアクセス Visual StudioのNuGetパッケージマネージャーへのアクセス

「Browse」タブの検索フィールドに「IronPDF」と入力して検索してください。以下のスクリーンショットを参照してください。

BlazorチュートリアルでPDFファイルを作成、図5: NuGetパッケージマネージャーGUIでIronPDFライブラリを検索する NuGetパッケージマネージャーGUIでIronPDFライブラリを検索する

上記の画像には関連する検索結果の一覧が表示されています。 パッケージをプロジェクトにインストールするために必要なオプションを選択します。

3.2 Visual Studioコマンドラインを使用

Visual Studioでは、ツール > NuGet パッケージ マネージャー > パッケージ マネージャー コンソールに移動します。

パッケージ マネージャー コンソールタブに次の行を入力してください。

Install-Package IronPdf

パッケージは現在のプロジェクトにダウンロードおよびインストールされます。

BlazorチュートリアルでPDFファイルを作成、図6: NuGetパッケージマネージャーコンソールを使用してIronPDFライブラリをインストールする NuGetパッケージマネージャーコンソールを使用してIronPDFライブラリをインストールする

3.3 NuGetウェブサイトから直接ダウンロード

IronPDFライブラリをインストールするための3番目の方法は、ウェブサイトからNuGetパッケージを直接ダウンロードすることです。

IronPDF用NuGetウェブサイトに移動します。

  • 右側のメニューから「Download Package」オプションをクリックします。
  • ファイルシステム上でダウンロードしたパッケージを開きます。 - ダウンロードしたパッケージをダブルクリックします。
  • ソリューションを再読み込みし、プロジェクトで使用を開始します。

3.4 IronPDFウェブサイトから直接ダウンロード

IronPDFウェブサイトを訪問し、IronPDFパッケージを直接ダウンロードしてください。

ダウンロード後、以下の手順に従ってパッケージをプロジェクトに追加します。

  • ソリューションウィンドウからプロジェクトを右クリックします。
  • 「追加」>「参照」のオプションを選択し、前にダウンロードしたライブラリの場所に移動します。
  • 「OK」をクリックして、ライブラリを参照として追加します。

4. Blazor Server AppでPDF文書を作成する

このチュートリアルのBlazorアプリは、IronPDFを使用して、ウェブページのHTMLコンテンツをそのURLで取得し、それをPDF文書に変換します。

プロジェクト内の.razorファイルに以下のソースコードを入力します。

@using IronPdf

@code {
    /// <summary>
    /// This method exports data by converting a URL to a PDF file and initiating its download.
    /// </summary>
    public async Task ExportData()
    {
        try
        {
            string fileName = "Demo.pdf";
            var renderer = new ChromePdfRenderer();

            // Render the contents of the URL as a PDF document
            var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");

            // Save the PDF using a JavaScript function
            await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
        }
        catch (Exception ex)
        {
            // Handle any exceptions that may occur
            Console.Error.WriteLine($"Error in ExportData: {ex.Message}");
        }
    }
}
@using IronPdf

@code {
    /// <summary>
    /// This method exports data by converting a URL to a PDF file and initiating its download.
    /// </summary>
    public async Task ExportData()
    {
        try
        {
            string fileName = "Demo.pdf";
            var renderer = new ChromePdfRenderer();

            // Render the contents of the URL as a PDF document
            var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");

            // Save the PDF using a JavaScript function
            await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
        }
        catch (Exception ex)
        {
            // Handle any exceptions that may occur
            Console.Error.WriteLine($"Error in ExportData: {ex.Message}");
        }
    }
}
[using] ReadOnly Property code() As IronPdf
	''' <summary>
	''' This method exports data by converting a URL to a PDF file and initiating its download.
	''' </summary>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	public async Task ExportData()
'	{
'		try
'		{
'			string fileName = "Demo.pdf";
'			var renderer = New ChromePdfRenderer();
'
'			' Render the contents of the URL as a PDF document
'			var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");
'
'			' Save the PDF using a JavaScript function
'			await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
'		}
'		catch (Exception ex)
'		{
'			' Handle any exceptions that may occur
'			Console.@Error.WriteLine(string.Format("Error in ExportData: {0}", ex.Message));
'		}
'	}
End Property
$vbLabelText   $csharpLabel

上記のコードスニペットは、HTMLからPDF文書を生成する2つの方法を使用しています。 1つ目は、IronPDFのRenderUrlAsPdfメソッドで、指定されたURLからHTMLコンテンツをダウンロードし、PDF形式に変換します。

2つ目の方法は、静的なJSRuntime.InvokeVoidAsyncメソッドで、クライアントのファイルシステムにPDFコンテンツを保存するウェブページの範囲内でJavaScript関数をブラウザのJavaScriptエンジンをトリガーします。

このJavaScript関数は以下に含まれています。

<script type="text/javascript">
    /**
     * Saves the PDF data as a file on the client's system.
     * @param {string} filename - The name of the file to be created.
     * @param {string} bytesBase64 - The Base64 encoded string of the PDF data.
     */
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            // Download the document in Microsoft Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
<script type="text/javascript">
    /**
     * Saves the PDF data as a file on the client's system.
     * @param {string} filename - The name of the file to be created.
     * @param {string} bytesBase64 - The Base64 encoded string of the PDF data.
     */
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            // Download the document in Microsoft Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
HTML

上記のJavaScript関数はBlazorからBase64データを受け取り、それをBlobに変換してクライアント側に保存します。

Alternatively, The SaveAs method from the ChromePdfRenderer class can also be used to save PDF documents to the browser's local storage.

5. HTML文字列からPDF文書を作成する

以下のコードスニペットは、HTML文字列を文書に変換する方法を示しています。

@using IronPdf

@code {
    /// <summary>
    /// Demonstrates turning an HTML string into a PDF document.
    /// </summary>
    public void GeneratePdfFromHtmlString()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");

        // You can save the generated PDF locally
        pdf.SaveAs("HelloWorld.pdf");
    }
}
@using IronPdf

@code {
    /// <summary>
    /// Demonstrates turning an HTML string into a PDF document.
    /// </summary>
    public void GeneratePdfFromHtmlString()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");

        // You can save the generated PDF locally
        pdf.SaveAs("HelloWorld.pdf");
    }
}
[using] ReadOnly Property code() As IronPdf
	''' <summary>
	''' Demonstrates turning an HTML string into a PDF document.
	''' </summary>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	public void GeneratePdfFromHtmlString()
'	{
'		var renderer = New ChromePdfRenderer();
'		var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");
'
'		' You can save the generated PDF locally
'		pdf.SaveAs("HelloWorld.pdf");
'	}
End Property
$vbLabelText   $csharpLabel

上記の例では、RenderHtmlAsPdfインスタンスメソッドを使用して、任意のHTMLの文字列をPDFコンテンツに変換しています。 さらに、上述の手順ではSaveAsメソッドを使用して、PDFコンテンツをクライアントのコンピューターに保存することもできます。

BlazorチュートリアルでPDFファイルを作成、図7: このチュートリアルで作成されたBlazor PDF生成アプリケーション このチュートリアルで作成されたBlazor PDF生成アプリケーション

上記のスクリーンショットは、今回のチュートリアルで開発されたウェブアプリケーションを示しています。 「ダウンロード」ボタンをクリックすると、クライアント側でPDFコンテンツをダウンロードするJavaScript関数と共にC#コードが発動されます。

結論

この記事では、IronPDF PDFライブラリを使用してウェブページからPDFファイルを生成するBlazor Webアプリケーションの開発方法を説明しました。

IronPDFはオープンソースではありませんが、無料トライアルキーを使用して、生産環境で透かし無しで使用できます。

よくある質問

Blazor サーバーサイドアプリケーションに PDF ライブラリをどのように統合できますか?

IronPDF を使用して Blazor サーバーサイドアプリケーションに PDF ライブラリを統合できます。まず、Visual Studio で Blazor プロジェクトを作成し、NuGet パッケージ マネージャーまたはコマンド ラインを通じて IronPDF ライブラリをインストールします。IronPDF は、HTML コンテンツからシームレスに PDF ドキュメントを生成することができます。

Blazor アプリケーションで HTML から PDF を生成するためにはどのような方法がありますか?

Blazorアプリケーションでは、IronPDFのRenderUrlAsPdfメソッドを使用して、ウェブページのURLをPDFに変換したり、RenderHtmlAsPdfを使用してHTML文字列から直接PDFを生成することができます。これらのメソッドは、さまざまなHTMLソースからPDFドキュメントを作成するのに柔軟性を提供します。

Blazor アプリケーションで PDF ファイルをクライアントのファイルシステムに保存するにはどうすればよいですか?

Blazor アプリケーションで PDF ファイルをクライアントのファイルシステムに保存するためには、JavaScript 関数を使用して PDF データを blob に変換し、ダウンロードをトリガーします。IronPDF は PDF を生成するために必要なツールを提供し、それをクライアント サイドの JavaScript を使用して処理できます。

Visual Studio で Blazor サーバーサイドプロジェクトを作成するプロセスは何ですか?

Visual Studio で Blazor サーバーサイドプロジェクトを作成するには、ファイル メニューから「新しいプロジェクト」を選択し、「Blazor サーバーアプリ」を選び、プロジェクト名と場所を指定し、適切な .NET フレームワーク バージョンを選択します。このセットアップにより、IronPDF などの追加ライブラリを統合して機能強化が可能になります。

このライブラリを使用して HTML 内の JavaScript と CSS コンテンツを PDF に変換することは可能ですか?

はい、IronPDF を使用して HTML 内の JavaScript と CSS コンテンツを PDF に変換することが可能です。これは HTML5、CSS、および JavaScript コンテンツのレンダリングをサポートしており、元のウェブページのレイアウトとスタイルを維持した包括的な PDF ドキュメントを生成できます。

Blazor で PDF の生成が期待通りに機能しない場合のトラブルシューティング手順は何ですか?

PDF の生成が Blazor で期待通りに機能しない場合、プロジェクト内で IronPDF ライブラリが正しくインストールされていることを確認してください。さらに HTML コンテンツが正しくフォーマットされておりアクセス可能であるか確認してください。また、ブラウザのコンソールで PDF レンダリングプロセスに影響を与える可能性がある JavaScript エラーがないか確認してください。

PDF ライブラリを使用して PDF ドキュメントにヘッダーとフッターを含めることをどのようにして確保できますか?

IronPDF を使用して PDF ドキュメントにヘッダーとフッターを含めるためには、レンダリングオプションを設定してカスタムヘッダーとフッターコンテンツを追加できます。これにより、ページ番号やタイトルなどの追加情報を PDF 出力に含めることができます。

Blazor アプリケーションで認証されたページの PDF を生成することは可能ですか?

はい、IronPDF は Blazor アプリケーションで認証が必要なページの PDF を生成できます。ライブラリの機能を使用して PDF に変換する前に、制限されたコンテンツにアクセスするための認証 Cookie またはトークンを管理する必要があります。

IronPDF は .NET 10 と互換性がありますか? また、.NET 10 で使用するとどのような利点がありますか?

はい、IronPDF は .NET 10 と完全に互換性があり、カスタムの回避策、shim、または廃止された API を必要とせずにすぐに使用できます。.NET 10 では、ASP.NET Core と Blazor に更新が加えられ、パフォーマンスの向上、依存関係の管理の改善、フレームワーク参照の処理の強化、JavaScript の分離の改善などが行われ、Razor ページ、URL、または HTML コンテンツを使用した PDF 生成ワークフローにメリットをもたらします。

IronPDF を .NET 10 で使用すると、パフォーマンスと実行時の効率がどのように向上しますか?

IronPDF を .NET 10 で使用すると、配列インターフェースメソッドの仮想化解除、構造体のエスケープ解析、JIT 最適化の改善、AVX-512 命令のサポートなど、いくつかのランタイム拡張機能を活用できます。これらの改善により、メモリ割り当てが削減され、ガベージコレクションのオーバーヘッドが低減され、HTML レンダリングや PDF 操作などのタスクが高速化されます。

Curtis Chau
テクニカルライター

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

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