IRONPDFの使用 IronPDFでBlazor PDFビューアを構築する方法 カーティス・チャウ 更新日:2026年2月27日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る Blazor PDF ビューアは、PDF ドキュメントを base64 データ URI に変換し、その結果を <iframe> 要素に読み込むことで、PDF ドキュメントをインラインでレンダリングします。 IronPDF の ChromePdfRenderer は、HTML 文字列、ライブ URL、または動的コンテンツを 1 回の非同期呼び出しで PDF バイトに変換し、 Blazor Server およびBlazor WebAssembly アプリケーションに外部ビューア プラグインなしで完全な PDF 生成および表示機能を提供します。 ビジネス アプリケーションでは、ユーザーを別のタブにリダイレクトしたり、デバイスごとに異なるブラウザーの PDF サポートに依存したりすることなく、定期的に請求書、契約書、レポートを表示する必要があります。 Blazor のコンポーネント モデルを使用すると、ライブラリが確実に変換を処理できれば、サーバー上で PDF を生成し、エンコードして、任意のページ コンポーネントにストリーミングすることが簡単になります。 このガイドでは、インストール、URL および HTML ベースのレンダリング、ヘッダーとフッターを使用したカスタマイズ、 JavaScript相互運用性を使用したブラウザー ダウンロード、 Blazor Server とBlazor WebAssembly のアプローチの比較、および 4 つの拡張操作 (マージ、注釈、パスワード保護、ユーザーがアップロードしたファイルの表示) について説明します。 各テクニックには、 Razorコンポーネントと同等のトップレベルの C# の例が提供されています。 無料のIronPDFトライアルを開始して、このガイドの例に従ってください。 BlazorプロジェクトでIronPDFを使い始めるにはどうすればいいですか? 開始するには、 NuGetパッケージをインストールし、ライセンス キーを Program.cs に追加する必要があります。 パッケージ マネージャー コンソールからIronPDFをインストールします。 Install-Package IronPdf または、 NuGetパッケージ マネージャー UI で" IronPDF "を検索し、最新バージョンを選択します。 購入の準備ができていませんか? PM > Install-Package IronPdf IronPDF を NuGet でチェックしてください。1000万回以上のダウンロードで、C#によるPDF開発を変革しています。 DLL または Windowsインストーラー をダウンロードすることもできます。 インストール後、PDF 操作を行う前にライセンス キーを Program.cs に追加します。 IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"; $vbLabelText $csharpLabel IronPDFは、 .NET 10、 .NET 9、 .NET 8、 .NET 6、および.NET Framework 4.6.2 以降と互換性があります。 開発およびテストの場合、ライブラリはライセンス キーなしで機能しますが、生成された PDF に透かしがスタンプされます。 無料試用ライセンスでは、評価中に透かしが削除されます。 IronPDF はBlazor Server プロジェクトとBlazor WebAssembly プロジェクトの両方をサポートしています。 Blazor Server では、レンダリング エンジンはサーバー上で直接実行されます。 Blazor WebAssembly では、PDF 生成にはサーバー側 API エンドポイントが必要です。 このガイドの後半のアーキテクチャ セクションでは、両方のアプローチについて説明します。 Blazor で URL から PDF ファイルを表示するにはどうすればよいですか? Blazor PDF ビューアーを作成する最も直接的な方法は、URL を PDF に変換し、<iframe> で表示することです。 IronPDF の ChromePdfRenderer は、Google Chrome を動かすのと同じChrome レンダリング エンジンを使用して Web ページを取得し、それを PDF 形式に変換し、CSS、 JavaScript出力、レイアウトを忠実に保持します。 Razorコンポーネントアプローチ 以下のRazorコンポーネントは、URLをPDFに変換し、インラインで表示します。GeneratePdfメソッドはBlazor Serverアプリ内のサーバー上で実行されるため、Chromeレンダリングエンジン全体を利用できます。 @page "/pdfviewer" @using IronPdf <h3>PDF Viewer</h3> <button @onclick="GeneratePdf" class="btn btn-primary">Load PDF</button> @if (!string.IsNullOrEmpty(pdfDataUri)) { <iframe src="@pdfDataUri" style="width:100%; height:600px; border:1px solid #ccc; margin-top:20px;"></iframe> } @code { private string pdfDataUri = string.Empty; private async Task GeneratePdf() { var renderer = new ChromePdfRenderer(); // Convert the URL to PDF using the Chrome rendering engine var pdf = await renderer.RenderUrlAsPdfAsync("https://ironpdf.com"); // Encode the PDF bytes as a base64 data URI for iframe display var base64 = Convert.ToBase64String(pdf.BinaryData); pdfDataUri = $"data:application/pdf;base64,{base64}"; } } トップレベルのC#の例 バックグラウンド サービス、コンソール アプリ、またはサーバー側 API エンドポイントの場合、同じ変換では、コンポーネント コンテキスト外で同一の API 呼び出しが使用されます。 using IronPdf; var renderer = new ChromePdfRenderer(); // Fetch and convert the target URL to a PDF document var pdf = await renderer.RenderUrlAsPdfAsync("https://ironpdf.com"); // Save to disk or use BinaryData for in-memory operations pdf.SaveAs("output.pdf"); byte[] pdfBytes = pdf.BinaryData; using IronPdf; var renderer = new ChromePdfRenderer(); // Fetch and convert the target URL to a PDF document var pdf = await renderer.RenderUrlAsPdfAsync("https://ironpdf.com"); // Save to disk or use BinaryData for in-memory operations pdf.SaveAs("output.pdf"); byte[] pdfBytes = pdf.BinaryData; $vbLabelText $csharpLabel RenderUrlAsPdfAsync はページを取得し、すべて for JavaScriptを実行し、 CSS を適用し、レンダリングされた出力を含む PdfDocument オブジェクトを返します。 BinaryData プロパティは、保存、ストリーミング、または表示用に生の PDF バイトを公開します。 <iframe> は、ズーム、ナビゲーション、印刷用の組み込みブラウザ ツールバーを使用して出力を表示します。 PDF の生成をカスタマイズするにはどうすればよいですか? IronPDF は、ChromePdfRenderOptions クラスを通じて出力制御を提供します。 用紙サイズを設定したり、余白を調整したり、各ページにテキストまたは HTML ヘッダーとフッターを追加したりできます。 レンダリング オプション ガイドには、使用可能なプロパティの完全なリストが記載されています。 Razorコンポーネントアプローチ 次のコンポーネントは、余白付きの A4 用紙を設定し、各ページにヘッダーとフッターのテキストを追加します。 レンダリング メソッドを呼び出す前に RenderingOptions を割り当てて、レンダラー インスタンスにグローバルに適用します。 @page "/pdfcustom" @using IronPdf <h3>Customized PDF Viewer</h3> <button @onclick="GenerateCustomizedPdf" class="btn btn-primary">Generate Customized PDF</button> @if (!string.IsNullOrEmpty(pdfDataUri)) { <iframe src="@pdfDataUri" style="width:100%; height:600px; border:1px solid #ccc; margin-top:20px;"></iframe> } @code { private string pdfDataUri = string.Empty; private async Task GenerateCustomizedPdf() { var renderer = new ChromePdfRenderer { RenderingOptions = new ChromePdfRenderOptions { PaperSize = IronPdf.Rendering.PdfPaperSize.A4, MarginTop = 25, MarginBottom = 25, MarginLeft = 20, MarginRight = 20, // Header with dynamic date replacement TextHeader = new TextHeaderFooter { CenterText = "Monthly Report - {date}", FontSize = 12 }, // Footer with page numbering TextFooter = new TextHeaderFooter { LeftText = "Confidential", RightText = "Page {page} of {total-pages}", FontSize = 10 } } }; var pdf = await renderer.RenderUrlAsPdfAsync("https://example.com/report"); pdfDataUri = $"data:application/pdf;base64,{Convert.ToBase64String(pdf.BinaryData)}"; } } トップレベルのC#の例 同じオプションがど for .NETコンテキストにも適用されます。 このパターンは、ASP.NET Core の最小限の API またはスケジュールされたレポート ジェネレーター内で適切に機能します。 using IronPdf; using IronPdf.Rendering; var renderer = new ChromePdfRenderer { RenderingOptions = new ChromePdfRenderOptions { PaperSize = PdfPaperSize.A4, MarginTop = 25, MarginBottom = 25, TextHeader = new TextHeaderFooter { CenterText = "Report - {date}", FontSize = 12 }, TextFooter = new TextHeaderFooter { RightText = "Page {page} of {total-pages}", FontSize = 10 } } }; var pdf = await renderer.RenderUrlAsPdfAsync("https://example.com/report"); pdf.SaveAs("customized-report.pdf"); using IronPdf; using IronPdf.Rendering; var renderer = new ChromePdfRenderer { RenderingOptions = new ChromePdfRenderOptions { PaperSize = PdfPaperSize.A4, MarginTop = 25, MarginBottom = 25, TextHeader = new TextHeaderFooter { CenterText = "Report - {date}", FontSize = 12 }, TextFooter = new TextHeaderFooter { RightText = "Page {page} of {total-pages}", FontSize = 10 } } }; var pdf = await renderer.RenderUrlAsPdfAsync("https://example.com/report"); pdf.SaveAs("customized-report.pdf"); $vbLabelText $csharpLabel {date} などのテンプレート変数は、レンダリング時に実際の値に置き換えられます。複雑なブランドレイアウトの場合は、TextHeader および TextFooter の代わりに、HtmlHeader および HtmlFooter プロパティを使用してください。 ヘッダーとフッターのガイドには、両方のアプローチの完全な例が含まれています。 PDF ダウンロードを有効にする最良の方法は何ですか? <iframe> で PDF を表示すると、表示は処理されますが、ユーザーは頻繁にファイルをダウンロードする必要があります。JavaScript 相互運用機能により、.NETJavaScriptストリームからブラウザーへのダウンロードがトリガーされます。 追加のダウンロードおよびエクスポート パターンについては、エクスポートおよび保存 PDF ガイドを参照してください。 Razorコンポーネントアプローチ コンポーネントに IJSRuntime を挿入し、 JavaScriptヘルパー関数を呼び出してダウンロードを開始します。 DotNetStreamReference は、ファイル全体を一度にJavaScriptメモリにロードせずに PDF バイトをストリームします。 @page "/pdfdownload" @using IronPdf @inject IJSRuntime JSRuntime <h3>Download PDF</h3> <button @onclick="DownloadPdf" class="btn btn-success">Download PDF</button> @code { private async Task DownloadPdf() { var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Invoice</h1><p>Total: $1,299</p>"); // Stream the PDF bytes to the browser as a downloadable file using var streamRef = new DotNetStreamReference(stream: new MemoryStream(pdf.BinaryData)); await JSRuntime.InvokeVoidAsync("downloadFileFromStream", "invoice.pdf", streamRef); } } Microsoft のBlazor JavaScript相互運用ドキュメントの説明に従って、次 for JavaScript関数を _Host.cshtml または App.razor ファイルに追加します。 window.downloadFileFromStream = async (fileName, contentStreamReference) => { const arrayBuffer = await contentStreamReference.arrayBuffer(); const blob = new Blob([arrayBuffer]); const url = URL.createObjectURL(blob); const anchorElement = document.createElement('a'); anchorElement.href = url; anchorElement.download = fileName ?? ''; anchorElement.click(); anchorElement.remove(); URL.revokeObjectURL(url); }; window.downloadFileFromStream = async (fileName, contentStreamReference) => { const arrayBuffer = await contentStreamReference.arrayBuffer(); const blob = new Blob([arrayBuffer]); const url = URL.createObjectURL(blob); const anchorElement = document.createElement('a'); anchorElement.href = url; anchorElement.download = fileName ?? ''; anchorElement.click(); anchorElement.remove(); URL.revokeObjectURL(url); }; JAVASCRIPT トップレベルのC#の例 サーバー側 API エンドポイントでは、Results.File を使用して PDF バイトを直接返します。 ブラウザは正しい Content-Disposition ヘッダーを持つファイルを受信し、自動的にダウンロードを開始します。 using IronPdf; // ASP.NET Core minimal API endpoint app.MapGet("/api/pdf/invoice", async () => { var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Invoice</h1><p>Total: $1,299</p>"); // Return with file download headers return Results.File(pdf.BinaryData, "application/pdf", "invoice.pdf"); }); using IronPdf; // ASP.NET Core minimal API endpoint app.MapGet("/api/pdf/invoice", async () => { var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Invoice</h1><p>Total: $1,299</p>"); // Return with file download headers return Results.File(pdf.BinaryData, "application/pdf", "invoice.pdf"); }); $vbLabelText $csharpLabel Razor コンポーネントから PDF を生成するにはどうすればよいですか? HTML から PDF を生成すると、レイアウト、データ バインディング、スタイルを完全に制御できます。 このアプローチは、請求書、レポート、ライブアプリケーションデータから作成されたあらゆるドキュメントに適しています。 より高度なレンダリング手法については、 HTML から PDF への変換ガイドを参照してください。 Razorコンポーネントアプローチ 以下のコンポーネントは、C# データから請求書の HTML 文字列を構築し、それを PDF に変換します。 ChromePdfRenderer は HTML 文字列を Web ページと同じように扱い、すべての CSS を適用して Chrome エンジンでレンダリングします。 @page "/invoicedemo" @using IronPdf <h3>Invoice Generator</h3> <button @onclick="GenerateInvoice" class="btn btn-primary">Generate Invoice PDF</button> @if (!string.IsNullOrEmpty(pdfDataUri)) { <iframe src="@pdfDataUri" style="width:100%; height:600px; border:1px solid #ccc; margin-top:20px;"></iframe> } @code { private string pdfDataUri = string.Empty; private async Task GenerateInvoice() { var invoiceHtml = $@" <html> <head> <style> body {{ font-family: Arial, sans-serif; }} .header {{ background-color: #f0f0f0; padding: 20px; }} .invoice-table {{ width: 100%; border-collapse: collapse; }} .invoice-table th, .invoice-table td {{ border: 1px solid #ddd; padding: 8px; }} .total {{ font-weight: bold; font-size: 18px; }} </style> </head> <body> <div class='header'> <h1>Invoice #INV-2025-001</h1> <p>Date: {DateTime.Now:MM/dd/yyyy}</p> </div> <table class='invoice-table'> <thead> <tr> <th>Item</th><th>Quantity</th><th>Price</th><th>Total</th> </tr> </thead> <tbody> <tr> <td>IronPDF License</td><td>1</td><td>$749</td><td>$749</td> </tr> <tr> <td>Priority Support</td><td>1</td><td>$250</td><td>$250</td> </tr> </tbody> </table> <p class='total'>Total Amount: $999</p> </body> </html>"; var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync(invoiceHtml); pdfDataUri = $"data:application/pdf;base64,{Convert.ToBase64String(pdf.BinaryData)}"; } } トップレベルのC#の例 同じ HTML 文字列アプローチは、コンソール アプリ、バックグラウンド サービス、API エンドポイントなど、あらゆる.NETコンテキストで機能します。 C# の文字列補間またはテンプレート ライブラリは、文字列をレンダラーに渡す前に動的データを挿入します。 using IronPdf; var html = """ <html> <body> <h1>Invoice #INV-2025-001</h1> <table> <tr><th>Item</th><th>Total</th></tr> <tr><td>IronPDF License</td><td>$749</td></tr> <tr><td>Priority Support</td><td>$250</td></tr> </table> <p><strong>Total: $999</strong></p> </body> </html> """; var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync(html); pdf.SaveAs("invoice.pdf"); using IronPdf; var html = """ <html> <body> <h1>Invoice #INV-2025-001</h1> <table> <tr><th>Item</th><th>Total</th></tr> <tr><td>IronPDF License</td><td>$749</td></tr> <tr><td>Priority Support</td><td>$250</td></tr> </table> <p><strong>Total: $999</strong></p> </body> </html> """; var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync(html); pdf.SaveAs("invoice.pdf"); $vbLabelText $csharpLabel RenderHtmlAsPdfAsync は、インライン CSS や埋め込みJavaScriptを含む、有効な HTML 文字列を受け入れます。 実装では、レイアウト、フォント レンダリング、ページ ブレークが自動的に処理されます。 Blazor Server PDF ビューアーとBlazor WebAssembly の違いは何ですか? ホスティング モデルによって、PDF 生成が実行される場所と、バイトがブラウザーに到達する方法が決まります。 この違いを理解することで、 Blazor PDF ビューアを構築するときによくあるアーキテクチャ上の間違いを防ぐことができます。 Blazor Server はサーバー上のすべての C# コードを実行します。 ChromePdfRenderer はサーバー側で実行され、結果のバイトは既存の SignalR 接続を介してブラウザーにプッシュされます。 これは最も単純な統合パスであり、前のセクションで示したもの以外に追加の API エンドポイントやネットワーク呼び出しは必要ありません。 Blazor WebAssembly は、 WASM を使用してブラウザーのサンドボックス内で C# を実行します。 IronPDF のレンダリング エンジンは、ブラウザー サンドボックス内で実行できないネイティブ バイナリに依存しているため、ChromePdfRenderer は WASM プロジェクトでは直接使用できません。 正しい方法は、PDF 生成を実行し、バイトを応答として返すサーバー側 API エンドポイントを呼び出すことです。 Blazor WebAssembly 用の PDF 生成 API の設定 サーバー上で、PDF を生成して返す最小限の API エンドポイントを定義します。 // Program.cs (ASP.NET Core host project) using IronPdf; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"; app.MapGet("/api/pdf/report", async () => { var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Quarterly Report</h1><p>Generated server-side.</p>"); // Return PDF bytes with file download headers return Results.File(pdf.BinaryData, "application/pdf", "report.pdf"); }); // Program.cs (ASP.NET Core host project) using IronPdf; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"; app.MapGet("/api/pdf/report", async () => { var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Quarterly Report</h1><p>Generated server-side.</p>"); // Return PDF bytes with file download headers return Results.File(pdf.BinaryData, "application/pdf", "report.pdf"); }); $vbLabelText $csharpLabel WASM クライアントで、HttpClient を挿入し、API エンドポイントを呼び出します。 Blazor WASM ホスト プロジェクト テンプレートは、サーバーのベース アドレスをターゲットにするために HttpClient を事前構成します。 @page "/wasm-pdf-viewer" @inject HttpClient Http <h3>PDF Viewer</h3> <button @onclick="LoadPdf" class="btn btn-primary">Load Report</button> @if (!string.IsNullOrEmpty(pdfDataUri)) { <iframe src="@pdfDataUri" style="width:100%; height:600px;"></iframe> } @code { private string pdfDataUri = string.Empty; private async Task LoadPdf() { // Fetch PDF bytes from the server-side generation endpoint var bytes = await Http.GetByteArrayAsync("/api/pdf/report"); pdfDataUri = $"data:application/pdf;base64,{Convert.ToBase64String(bytes)}"; } } このパターンでは、負荷の高いレンダリング作業はすべてサーバー上で行われ、WASM クライアントは表示のみを処理します。 本番環境で使用する場合は、API エンドポイントに認証を追加し、生成された PDF コンテンツを認証されたユーザーのデータに限定します。 その他の PDF 操作は何ができますか? IronPDF の API は、基本的な表示をはるかに超えています。 次のセクションでは、 Blazorドキュメント ワークフローで一般的に必要な 4 つの操作 (複数のドキュメントのマージ、注釈の追加、パスワード保護の適用、ユーザーがアップロードしたファイルの表示) について説明します。 複数の PDF ドキュメントを結合するにはどうすればよいですか? マージは、複数の PdfDocument インスタンスを 1 つのファイルに結合します。これは、レポート セクションの組み立て、付録の追加、またはユーザーが選択したファイルの連結に役立ちます。 PDF の結合と分割のガイドでは、ページ レベルの挿入と分割の操作について説明します。 using IronPdf; var renderer = new ChromePdfRenderer(); // Generate two separate sections as individual PDF documents var section1 = await renderer.RenderHtmlAsPdfAsync("<h1>Section 1: Overview</h1>"); var section2 = await renderer.RenderHtmlAsPdfAsync("<h1>Section 2: Details</h1>"); // Merge into a single document preserving all pages var merged = PdfDocument.Merge(section1, section2); merged.SaveAs("combined-report.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); // Generate two separate sections as individual PDF documents var section1 = await renderer.RenderHtmlAsPdfAsync("<h1>Section 1: Overview</h1>"); var section2 = await renderer.RenderHtmlAsPdfAsync("<h1>Section 2: Details</h1>"); // Merge into a single document preserving all pages var merged = PdfDocument.Merge(section1, section2); merged.SaveAs("combined-report.pdf"); $vbLabelText $csharpLabel 結合されたドキュメントをBlazorコンポーネントに表示するには、前のセクションの base64 データ URI パターンに merged.BinaryData を渡します。 結合された PdfDocument オブジェクトは、表示用にエンコードされる前に、追加の操作 (透かしの追加、セキュリティ設定、または追加のページ追加) も受け入れます。 PDF に注釈を追加するにはどうすればよいですか? 注釈は、基礎となるドキュメントの内容を変更することなく、特定のページの場所にレビュー担当者のメモやコメントを添付します。 IronPDFは、テキスト注釈、フリーテキストボックス、その他のマークアップタイプをサポートしています。注釈プロパティの完全なリストについては、注釈ガイドをご覧ください。 using IronPdf; using IronPdf.Annotations; var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Contract Document</h1><p>Review required on clause 3.</p>"); // Add a text annotation to page 0 at position (50, 650) var annotation = new TextAnnotation(pageIndex: 0) { Title = "Reviewer Note", Contents = "Please confirm clause 3 before signing.", X = 50, Y = 650, Width = 200, Height = 50, Printable = false, OpenByDefault = true }; pdf.Annotations.Add(annotation); pdf.SaveAs("annotated-contract.pdf"); using IronPdf; using IronPdf.Annotations; var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Contract Document</h1><p>Review required on clause 3.</p>"); // Add a text annotation to page 0 at position (50, 650) var annotation = new TextAnnotation(pageIndex: 0) { Title = "Reviewer Note", Contents = "Please confirm clause 3 before signing.", X = 50, Y = 650, Width = 200, Height = 50, Printable = false, OpenByDefault = true }; pdf.Annotations.Add(annotation); pdf.SaveAs("annotated-contract.pdf"); $vbLabelText $csharpLabel ブラウザのディスプレイを含む標準のビューアで PDF を開いた場合、注釈は保持されます。 Blazorアプリケーションの場合、アノテーション ロジックをサーバー側で実行し、コンポーネントに pdf.BinaryData を返して表示します。 PDF にパスワード保護を適用するにはどうすればよいですか? パスワード保護により、財務レポートや人事記録などの機密文書へのアクセスが制限されます。 IronPDF は、ユーザー パスワード (ドキュメントを開くために必要) と所有者パスワード (権限を変更するために必要) をサポートしています。 PDF セキュリティ ガイドには、使用可能なすべての権限フラグがリストされています。 using IronPdf; var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Confidential Report</h1>"); // Set the password required to open the document pdf.Password = "user-open-password"; // Set the owner password to control editing and printing rights pdf.SecuritySettings.OwnerPassword = "owner-edit-password"; pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights; pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.SaveAs("protected-report.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Confidential Report</h1>"); // Set the password required to open the document pdf.Password = "user-open-password"; // Set the owner password to control editing and printing rights pdf.SecuritySettings.OwnerPassword = "owner-edit-password"; pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights; pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.SaveAs("protected-report.pdf"); $vbLabelText $csharpLabel パスワードで保護された PDF では、ブラウザにパスワード プロンプトが表示されます <iframe>。 このアプローチはダウンロードで配布されるドキュメントに有効です。 プロンプトなしでインライン表示するには、ダウンロード ルートを通じて返されるドキュメントにのみパスワードを適用します。 ユーザーがアップロードした PDF を表示するにはどうすればよいですか? ユーザーがアップロードした PDF を表示するには、受信したファイル バイトを読み取り、データ URI としてエンコードする必要があります。 以下のアップロード コンポーネントは、Blazor の InputFile コントロールを使用してファイルをキャプチャし、再レンダリングせずに直接表示します。 @page "/upload-viewer" @using IronPdf <h3>Upload and View a PDF</h3> <InputFile OnChange="LoadUploadedPdf" accept=".pdf" /> @if (!string.IsNullOrEmpty(pdfDataUri)) { <iframe src="@pdfDataUri" style="width:100%; height:600px; margin-top:20px;"></iframe> } @code { private string pdfDataUri = string.Empty; private async Task LoadUploadedPdf(InputFileChangeEventArgs e) { using var stream = e.File.OpenReadStream(maxAllowedSize: 10 * 1024 * 1024); using var ms = new MemoryStream(); await stream.CopyToAsync(ms); var bytes = ms.ToArray(); // Encode the uploaded PDF bytes directly for display pdfDataUri = $"data:application/pdf;base64,{Convert.ToBase64String(bytes)}"; } } 透かしの追加、ページの抽出、再暗号化など、表示前にサーバー側の処理が必要なアップロードされた PDF の場合は、まずバイトを PdfDocument に読み込みます。 var pdf = new PdfDocument(bytes); // Apply operations, then re-encode pdfDataUri = $"data:application/pdf;base64,{Convert.ToBase64String(pdf.BinaryData)}"; var pdf = new PdfDocument(bytes); // Apply operations, then re-encode pdfDataUri = $"data:application/pdf;base64,{Convert.ToBase64String(pdf.BinaryData)}"; $vbLabelText $csharpLabel これにより、アップロードされたファイルで完全なIronPDF API を有効にしながら、同じコンポーネント構造が維持されます。 次のステップは何ですか? このガイドでは、 IronPDFを使用したBlazor PDF ビューアーの完全なワークフローについて説明しました.NET 10 へのインストール、URL と HTML のレンダリング、ヘッダーとフッターを使用した出力のカスタマイズ、ブラウザー ダウンロード for JavaScript相互運用性、 Blazor Server とBlazor WebAssembly のアーキテクチャの違い、および 4 つのドキュメント操作 (マージ、注釈、パスワード保護、ユーザー アップロード) について説明しました。 この基盤を拡張するには、次のリソースを調べてください。 HTMLからPDFへのチュートリアル:高度なレンダリング、CSSメディアクエリ、 JavaScript実行戦略 PDFの権限とパスワード:完全なセキュリティ設定と権限フラグ PDFの結合と分割:ページレベルのドキュメントの組み立てと分割 -透かしガイド:生成されたドキュメントのテキストと画像の透かし IronPDF APIリファレンス:完全なクラスとメソッドのドキュメント 無料の試用ライセンスを取得して、透かしを削除し、 Blazorアプリケーション全体でIronPDFをテストしてください。 IronPDF は、追加の構成なしで、 .NET 10 、 ASP.NET Core、 Blazor Server、およびホストされたBlazor WebAssembly プロジェクトをサポートします。 追加の統合ガイダンスについては、 Microsoft の公式Blazorドキュメントを参照してください。 よくある質問 Blazor PDF ビューアーとは? Blazor PDFビューアは、Blazor ServerまたはWebAssemblyアプリケーションでPDFドキュメントをインラインで表示するコンポーネントです。通常、PDFバイトをbase64データURIに変換してiframe要素内に表示し、ズーム、ナビゲーション、および印刷のための組み込みブラウザツールバーをユーザーに提供します。 Blazor ServerアプリケーションでPDFを表示するにはどうすればよいですか? NuGetを介してIronPDFをインストールし、ライセンスキーをProgram.csに追加してから、ChromePdfRendererを使用してURLまたはHTML文字列からPDFバイトを生成します。バイトをbase64データURIとしてエンコードし、Razorコンポーネントのiframeのsrc属性に割り当てます。 IronPDFはBlazor WebAssemblyプロジェクトで実行できますか? IronPDFのレンダリングエンジンは、ネイティブバイナリを必要とし、ブラウザのWASMサンドボックス内では実行できません。Blazor WebAssemblyプロジェクトの場合、ASP.NET CoreサーバーサイドAPIエンドポイントを作成して、IronPDFでPDFを生成し、バイトを返します。WASMクライアントはこのエンドポイントをHttpClientで呼び出して結果を表示します。 BlazorでPDFダウンロードをトリガーするにはどうすればよいですか? IJSRuntimeをコンポーネントに注入し、IronPDFでPDFバイトを生成し、DotNetStreamReferenceでラップして、InvokeVoidAsyncを使用してJavaScript関数を呼び出します。JavaScript関数はBlob URLを作成し、アンカー要素をクリックしてブラウザのダウンロードをトリガーします。 Blazor PDFビューイングにIronPDFを使用する利点は何ですか? IronPDFは、HTML、CSS、およびJavaScript出力をPDF形式に正確に変換するChromeレンダリングエンジンを使用します。.NET 10をサポートし、Blazor ServerおよびWebAssemblyのアーキテクチャで動作し、PDF生成、マージ、注釈、パスワード保護、ユーザーアップロード処理のための単一APIを提供します。 Blazorで生成されたPDFにヘッダーとフッターを追加するにはどうすればよいですか? レンダリングメソッドを呼び出す前に、ChromePdfRendererのRenderingOptionsプロパティを設定します。プレーンテキストのヘッダーとフッターにはテンプレート変数{page}、{total-pages}、{date}を使用したTextHeaderとTextFooterを使用します。HTMLベースのレイアウトには、HtmlHeaderとHtmlFooterを使用します。 Blazorで複数のPDFドキュメントをマージするにはどうすればよいですか? ChromePdfRendererを使用して各ドキュメントをPdfDocumentインスタンスとして生成し、PdfDocument.Merge(pdf1, pdf2)を呼び出して結合します。結合されたドキュメントのBinaryDataをBlazorコンポーネントのbase64データURIに渡して、結合結果を表示します。 ディスクに保存せずにBlazorでユーザーがアップロードしたPDFを表示できますか? はい。BlazorのInputFileコンポーネントを使用して、アップロードされたファイルをMemoryStreamに読み込み、バイトをbase64データURIに変換し、iframeのsrc属性に割り当てます。ファイルシステムへの書き込みは必要ありません。サーバーサイドで処理する場合は、エンコードする前にバイトをPdfDocumentインスタンスにロードします。 Blazorで生成されたPDFにパスワード保護を適用するにはどうすればよいですか? PdfDocumentを生成した後、ユーザーオープンパスワード用のPasswordプロパティを設定し、オーナーパスワードにはSecuritySettings.OwnerPasswordを使用します。保存またはエンコードを行う前に、SecuritySettings.AllowUserPrintingとAllowUserCopyPasteContentで権限を制御します。 Blazor PDF ビューアー プロジェクトの場合、IronPDF は .NET 10 と互換性がありますか? はい。IronPDFは.NET 10、.NET 9、.NET 8、.NET 6、および.NET Framework 4.6.2以降をサポートしています。Blazorアプリケーションで.NET 10をターゲットにするために特別な構成は不要です。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 2026年3月1日 .NETでIronPDFを使用してPDFファイルを作成する方法 (C#チュートリアル) C#で開発者向けにPDFファイルを作成する効果的な方法を発見します。コーディングスキルを向上させ、プロジェクトを効率化します。この記事を今すぐお読みください! 詳しく読む 更新日 2026年2月27日 C#でPDFファイルをマージする方法 IronPDF で PDF をマージします。シンプルな VB.NET コードを使用して、複数の PDF ファイルを1つのドキュメントに結合する方法を学びます。ステップバイステップの例が含まれています。 詳しく読む 更新日 2026年3月1日 .NET 10 開発者向け C# PDFWriter チュートリアル このステップバイステップガイドで開発者がC# PDFWriterを使用してPDFを効率的に作成する方法を学びます。記事を読んでスキルを向上させましょう! 詳しく読む ASP.NET CoreでPDFファイルからデータを読み取る方法ASP.NET用PDFビューア:.NET 10...
更新日 2026年3月1日 .NETでIronPDFを使用してPDFファイルを作成する方法 (C#チュートリアル) C#で開発者向けにPDFファイルを作成する効果的な方法を発見します。コーディングスキルを向上させ、プロジェクトを効率化します。この記事を今すぐお読みください! 詳しく読む
更新日 2026年2月27日 C#でPDFファイルをマージする方法 IronPDF で PDF をマージします。シンプルな VB.NET コードを使用して、複数の PDF ファイルを1つのドキュメントに結合する方法を学びます。ステップバイステップの例が含まれています。 詳しく読む
更新日 2026年3月1日 .NET 10 開発者向け C# PDFWriter チュートリアル このステップバイステップガイドで開発者がC# PDFWriterを使用してPDFを効率的に作成する方法を学びます。記事を読んでスキルを向上させましょう! 詳しく読む