IRONPDFの使用 IronPDF を使ってASP.NET WebアプリケーションでPDFビューアを作成する方法 カーティス・チャウ 更新日:2025年12月4日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る IronPDF は、プラグインや外部依存関係を必要とせず、ブラウザーの組み込みビューアーに直接表示されるサーバー側 PDF を生成することで、ASP.NET Core アプリケーションでのシームレスな PDF 表示を可能にします。応答ヘッダーを構成するだけで、IronPDF のChrome ベースのレンダリング エンジンがHTML から PDF への変換を処理します。 PDF ドキュメントを表示する Web アプリケーションの作成は簡単です。 請求書、レポート、インタラクティブ フォームなどを表示する場合でも、ユーザーはブラウザー内でのスムーズなドキュメント表示エクスペリエンスを期待しており、Adobe Acrobat Reader やその他のサードパーティ ツールは必要ありません。 IronPDF を使用すると、これが非常に簡単になります。 頻繁に更新されるこの.NET ライブラリを使用すると、わずか数行のコードで ASP.NET Core プロジェクト内で PDF ファイルを作成、レンダリング、表示できます。 シンプルなHTML 変換から複雑なRazor ビューまですべてを処理するプロフェッショナルなPDF ビューアー コントロールを実装する方法について詳しく見ていきましょう。 ブラウザベースの PDF 表示はどのように機能しますか? ここで朗報です。最近のブラウザにはすでにPDFビューアが組み込まれています。 サーバーが正しいMIMEタイプ( application/pdf )のPDFファイルを送信すると、ブラウザは自動的にそれをインラインで表示します。つまり、 PDFドキュメントを表示するために外部プラグインや複雑なクライアントサイドJavaScriptライブラリは必要ありません。 重要なのは、高品質のPDF ドキュメントを生成し、正しい応答ヘッダーを構成することです。 IronPDF は、 Chrome レンダリング エンジンを使用して HTML、CSS、 JavaScriptからピクセルパーフェクトなPDF ページを作成し、サーバー側の面倒な処理を処理します。 その結果は? ユーザーは、追加の UI 構成なしで、テキスト選択、検索、印刷、ダウンロードなどの機能を備えたネイティブ ドキュメント ビューアー エクスペリエンスを利用できます。 コンテンツを簡単に埋め込んで表示することができます。 このアプローチは、 ASP.NET Core MVC 、 Razor ビュー、さらには従来の Web フォルダー プロジェクトを使用して構築する場合でも、すべての.NET アプリケーションでシームレスに機能します。 コンテナ化されたデプロイメントの場合、IronPDF は依存関係を最小限に抑えながら優れたDocker サポートを提供するため、マイクロサービス アーキテクチャに最適です。 PDFビューアコントロールのインストールと設定方法 Visual StudioでIronPDFを使い始めるにはいくつかのステップを踏むだけです。 ASP.NET Core プロジェクトを開き、 NuGet パッケージをインストールします。 Install-Package IronPdf コンテナ化された環境の場合、IronPDF は公式の Docker イメージを提供し、 Linux コンテナとWindows コンテナの両方をサポートします。 ライブラリはChrome の依存関係とフォントのインストールを自動的に処理し、展開の複雑さを最小限に抑えます。 次に、 Program.csにライセンス キー構成を追加します。 IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY" $vbLabelText $csharpLabel Azure デプロイの場合、ライセンス キーを Azure Key Vault または環境変数に保存できます。 IronPDF は、最適化されたパフォーマンス設定を備えたAWS Lambdaやその他のクラウド プラットフォームもサポートします。 IronPDF を.NET アプリケーションに完全に統合するために必要な設定はこれだけです。 Azure デプロイメントやDocker コンテナーなどの高度なシナリオの追加構成オプションについては、 IronPDF のドキュメントを参照してください。 契約する前に、無料トライアルですべての機能を試すことができます。 HTMLからPDFドキュメントを生成して表示するには? ASP.NET Core Web アプリケーションで PDF ビューアーを作成する最も簡単な方法は、 HTML 文字列を直接変換することです。 以下は、コンテナ オーケストレーションのヘルス チェック エンドポイントを備えた完全なコントローラーの例です。 using IronPdf; using Microsoft.AspNetCore.Mvc; public class PdfController : Controller { private readonly ChromePdfRenderer _renderer; public PdfController() { _renderer = new ChromePdfRenderer(); // Configure for container environments _renderer.RenderingOptions.WaitFor.RenderDelay = 100; // ms _renderer.RenderingOptions.Timeout = 30000; // 30 seconds } public IActionResult DisplayFromHtml() { // Create PDF from HTML with CSS styling var html = @" <html> <head> <style> body { font-family: Arial; padding: 20px; } h1 { color: #2c3e50; } .content { line-height: 1.6; } </style> </head> <body> <h1>Sample PDF Document</h1> <p class='content'>This PDF was generated using IronPDF in ASP.NET Core.</p> </body> </html>"; var pdf = _renderer.RenderHtmlAsPdf(html); // Display PDF inline in browser Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf"); return File(pdf.BinaryData, "application/pdf"); } // Health check endpoint for Kubernetes readiness probe [HttpGet("health")] public IActionResult Health() { try { var test = _renderer.RenderHtmlAsPdf("<p>Health check</p>"); return Ok(new { status = "healthy", engine = "ready" }); } catch { return StatusCode(503, new { status = "unhealthy" }); } } } using IronPdf; using Microsoft.AspNetCore.Mvc; public class PdfController : Controller { private readonly ChromePdfRenderer _renderer; public PdfController() { _renderer = new ChromePdfRenderer(); // Configure for container environments _renderer.RenderingOptions.WaitFor.RenderDelay = 100; // ms _renderer.RenderingOptions.Timeout = 30000; // 30 seconds } public IActionResult DisplayFromHtml() { // Create PDF from HTML with CSS styling var html = @" <html> <head> <style> body { font-family: Arial; padding: 20px; } h1 { color: #2c3e50; } .content { line-height: 1.6; } </style> </head> <body> <h1>Sample PDF Document</h1> <p class='content'>This PDF was generated using IronPDF in ASP.NET Core.</p> </body> </html>"; var pdf = _renderer.RenderHtmlAsPdf(html); // Display PDF inline in browser Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf"); return File(pdf.BinaryData, "application/pdf"); } // Health check endpoint for Kubernetes readiness probe [HttpGet("health")] public IActionResult Health() { try { var test = _renderer.RenderHtmlAsPdf("<p>Health check</p>"); return Ok(new { status = "healthy", engine = "ready" }); } catch { return StatusCode(503, new { status = "unhealthy" }); } } } Imports IronPdf Imports Microsoft.AspNetCore.Mvc Public Class PdfController Inherits Controller Private ReadOnly _renderer As ChromePdfRenderer Public Sub New() _renderer = New ChromePdfRenderer() ' Configure for container environments _renderer.RenderingOptions.WaitFor.RenderDelay = 100 ' ms _renderer.RenderingOptions.Timeout = 30000 ' 30 seconds End Sub Public Function DisplayFromHtml() As IActionResult ' Create PDF from HTML with CSS styling Dim html As String = " <html> <head> <style> body { font-family: Arial; padding: 20px; } h1 { color: #2c3e50; } .content { line-height: 1.6; } </style> </head> <body> <h1>Sample PDF Document</h1> <p class='content'>This PDF was generated using IronPDF in ASP.NET Core.</p> </body> </html>" Dim pdf = _renderer.RenderHtmlAsPdf(html) ' Display PDF inline in browser Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf") Return File(pdf.BinaryData, "application/pdf") End Function ' Health check endpoint for Kubernetes readiness probe <HttpGet("health")> Public Function Health() As IActionResult Try Dim test = _renderer.RenderHtmlAsPdf("<p>Health check</p>") Return Ok(New With {Key .status = "healthy", Key .engine = "ready"}) Catch Return StatusCode(503, New With {Key .status = "unhealthy"}) End Try End Function End Class $vbLabelText $csharpLabel 生成された PDF はブラウザでどのように表示されますか? ! ブラウザに"サンプルPDFドキュメント"というタイトルと"このPDFはASP.NET CoreのIronPDFを使用して生成されました"というテキストを含むPDFドキュメントが表示されている(localhost:7254/Pdf/DisplayFromHtmlで閲覧) ChromePdfRendererクラスは、正確なレンダリングのために Chromium を使用し、 CSS 、 JavaScript 、画像が意図したとおりに表示されるようにします。 Content-Dispositionをインラインに設定すると、PDFをダウンロードするのではなく、表示するようにブラウザに指示します。 これにより、ユーザーがWeb UI内で直接ドキュメントにアクセスできる、シームレスな閲覧体験が実現します。 レイアウトが複雑なドキュメントの場合は、HTML 内またはRenderingOptionsを使用して、幅や高さなどのレンダリング設定を指定できます。 WaitFor オプションは、ネットワーク遅延がアセットの読み込みに影響する可能性があるコンテナー化された環境での適切なレンダリングを保証します。 その他の HTML 変換オプションについては、 HTML 文字列から PDF へのガイドとパフォーマンス最適化のヒントをご覧ください。 URLとRazorビューからPDFファイルをレンダリングするには? IronPDF はライブ Web ページを PDF ドキュメントに変換することもできます。 これは、分散システムでレポートを生成したり、Web コンテンツをアーカイブしたりするのに最適です。 public IActionResult RenderFromUrl(string url = "___PROTECTED_URL_92___") { var renderer = new ChromePdfRenderer(); // Configure for production environments renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; renderer.RenderingOptions.WaitFor.NetworkIdle = 2000; // Wait for network idle renderer.RenderingOptions.PaperFit.UseChromeDefaultRendering = false; // Consistent across environments var pdf = renderer.RenderUrlAsPdf(url); Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf"); // Add caching headers for CDN distribution Response.Headers.Add("Cache-Control", "public, max-age=3600"); return File(pdf.BinaryData, "application/pdf"); } public IActionResult RenderFromUrl(string url = "___PROTECTED_URL_92___") { var renderer = new ChromePdfRenderer(); // Configure for production environments renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; renderer.RenderingOptions.WaitFor.NetworkIdle = 2000; // Wait for network idle renderer.RenderingOptions.PaperFit.UseChromeDefaultRendering = false; // Consistent across environments var pdf = renderer.RenderUrlAsPdf(url); Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf"); // Add caching headers for CDN distribution Response.Headers.Add("Cache-Control", "public, max-age=3600"); return File(pdf.BinaryData, "application/pdf"); } Public Function RenderFromUrl(Optional url As String = "___PROTECTED_URL_92___") As IActionResult Dim renderer = New ChromePdfRenderer() ' Configure for production environments renderer.RenderingOptions.EnableJavaScript = True renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print renderer.RenderingOptions.WaitFor.NetworkIdle = 2000 ' Wait for network idle renderer.RenderingOptions.PaperFit.UseChromeDefaultRendering = False ' Consistent across environments Dim pdf = renderer.RenderUrlAsPdf(url) Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf") ' Add caching headers for CDN distribution Response.Headers.Add("Cache-Control", "public, max-age=3600") Return File(pdf.BinaryData, "application/pdf") End Function $vbLabelText $csharpLabel URL ベースの PDF レンダリングはどのように表示されますか? ! IronPDF を使用した ASP.NET Web アプリケーションでレンダリングされた Wikipedia ホームページを表示する PDF ビューアのスクリーンショット。メイン ページのコンテンツとナビゲーション要素が CSS スタイルを完全に保持して表示されています。 RazorビューをPDFに変換するには、まずビューをHTMLとしてレンダリングするためのヘルパーメソッドが必要です。このアプローチにより、Web表示とPDF生成の両方で既存のテンプレートを再利用できるため、マイクロサービス間の一貫性を維持するために不可欠です。 public async Task<IActionResult> ViewToPdf() { var invoiceModel = new InvoiceModel { InvoiceNumber = 1001, InvoiceDate = DateTime.Now, CustomerName = "Acme Corp.", Items = new List<ItemModel> { new ItemModel { Description = "Product A", Quantity = 2, UnitPrice = 50.00m }, new ItemModel { Description = "Service B", Quantity = 1, UnitPrice = 150.00m } } }; invoiceModel.TotalAmount = invoiceModel.Items.Sum(i => i.LineTotal); // NOTE: RenderViewToStringAsync uses the Request services and ActionContext var htmlContent = await RenderViewToStringAsync("Invoice", invoiceModel); var renderer = new IronPdf.ChromePdfRenderer(); // Optimize for memory-constrained containers renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.All; renderer.RenderingOptions.MarginTop = renderer.RenderingOptions.MarginBottom = 40; var pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrl: HttpContext.Request.Scheme + "://" + HttpContext.Request.Host); // Add monitoring metrics _logger.LogInformation($"PDF generated: Size={pdf.BinaryData.Length} bytes, Pages={pdf.PageCount}"); return File(pdf.BinaryData, "application/pdf"); } private async Task<string> RenderViewToStringAsync(string viewName, object model) { // Use the current HttpContext's service provider (guaranteed available during a request) var actionContext = new ActionContext(HttpContext, RouteData, ControllerContext.ActionDescriptor); var viewEngine = HttpContext.RequestServices.GetRequiredService<IRazorViewEngine>(); var tempDataFactory = HttpContext.RequestServices.GetRequiredService<ITempDataDictionaryFactory>(); var tempData = tempDataFactory.GetTempData(HttpContext); ViewData.Model = model; var viewResult = viewEngine.FindView(actionContext, viewName, isMainPage: false); if (!viewResult.Success) { // Helpful error for debugging var searchedLocations = string.Join(Environment.NewLine, viewResult.SearchedLocations ?? Array.Empty<string>()); throw new InvalidOperationException($"Couldn't find view '{viewName}'. Searched locations:{Environment.NewLine}{searchedLocations}"); } await using var writer = new StringWriter(); var viewContext = new ViewContext( actionContext, viewResult.View, ViewData, tempData, writer, new HtmlHelperOptions() ); await viewResult.View.RenderAsync(viewContext); return writer.ToString(); } public async Task<IActionResult> ViewToPdf() { var invoiceModel = new InvoiceModel { InvoiceNumber = 1001, InvoiceDate = DateTime.Now, CustomerName = "Acme Corp.", Items = new List<ItemModel> { new ItemModel { Description = "Product A", Quantity = 2, UnitPrice = 50.00m }, new ItemModel { Description = "Service B", Quantity = 1, UnitPrice = 150.00m } } }; invoiceModel.TotalAmount = invoiceModel.Items.Sum(i => i.LineTotal); // NOTE: RenderViewToStringAsync uses the Request services and ActionContext var htmlContent = await RenderViewToStringAsync("Invoice", invoiceModel); var renderer = new IronPdf.ChromePdfRenderer(); // Optimize for memory-constrained containers renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.All; renderer.RenderingOptions.MarginTop = renderer.RenderingOptions.MarginBottom = 40; var pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrl: HttpContext.Request.Scheme + "://" + HttpContext.Request.Host); // Add monitoring metrics _logger.LogInformation($"PDF generated: Size={pdf.BinaryData.Length} bytes, Pages={pdf.PageCount}"); return File(pdf.BinaryData, "application/pdf"); } private async Task<string> RenderViewToStringAsync(string viewName, object model) { // Use the current HttpContext's service provider (guaranteed available during a request) var actionContext = new ActionContext(HttpContext, RouteData, ControllerContext.ActionDescriptor); var viewEngine = HttpContext.RequestServices.GetRequiredService<IRazorViewEngine>(); var tempDataFactory = HttpContext.RequestServices.GetRequiredService<ITempDataDictionaryFactory>(); var tempData = tempDataFactory.GetTempData(HttpContext); ViewData.Model = model; var viewResult = viewEngine.FindView(actionContext, viewName, isMainPage: false); if (!viewResult.Success) { // Helpful error for debugging var searchedLocations = string.Join(Environment.NewLine, viewResult.SearchedLocations ?? Array.Empty<string>()); throw new InvalidOperationException($"Couldn't find view '{viewName}'. Searched locations:{Environment.NewLine}{searchedLocations}"); } await using var writer = new StringWriter(); var viewContext = new ViewContext( actionContext, viewResult.View, ViewData, tempData, writer, new HtmlHelperOptions() ); await viewResult.View.RenderAsync(viewContext); return writer.ToString(); } Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Threading.Tasks Imports Microsoft.AspNetCore.Mvc Imports Microsoft.Extensions.DependencyInjection Imports Microsoft.Extensions.Logging Imports IronPdf Public Class YourController Inherits Controller Private ReadOnly _logger As ILogger(Of YourController) Public Sub New(logger As ILogger(Of YourController)) _logger = logger End Sub Public Async Function ViewToPdf() As Task(Of IActionResult) Dim invoiceModel As New InvoiceModel With { .InvoiceNumber = 1001, .InvoiceDate = DateTime.Now, .CustomerName = "Acme Corp.", .Items = New List(Of ItemModel) From { New ItemModel With {.Description = "Product A", .Quantity = 2, .UnitPrice = 50.0D}, New ItemModel With {.Description = "Service B", .Quantity = 1, .UnitPrice = 150.0D} } } invoiceModel.TotalAmount = invoiceModel.Items.Sum(Function(i) i.LineTotal) ' NOTE: RenderViewToStringAsync uses the Request services and ActionContext Dim htmlContent As String = Await RenderViewToStringAsync("Invoice", invoiceModel) Dim renderer As New ChromePdfRenderer() ' Optimize for memory-constrained containers renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.All renderer.RenderingOptions.MarginTop = 40 renderer.RenderingOptions.MarginBottom = 40 Dim pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrl:=HttpContext.Request.Scheme & "://" & HttpContext.Request.Host) ' Add monitoring metrics _logger.LogInformation($"PDF generated: Size={pdf.BinaryData.Length} bytes, Pages={pdf.PageCount}") Return File(pdf.BinaryData, "application/pdf") End Function Private Async Function RenderViewToStringAsync(viewName As String, model As Object) As Task(Of String) ' Use the current HttpContext's service provider (guaranteed available during a request) Dim actionContext As New ActionContext(HttpContext, RouteData, ControllerContext.ActionDescriptor) Dim viewEngine = HttpContext.RequestServices.GetRequiredService(Of IRazorViewEngine)() Dim tempDataFactory = HttpContext.RequestServices.GetRequiredService(Of ITempDataDictionaryFactory)() Dim tempData = tempDataFactory.GetTempData(HttpContext) ViewData.Model = model Dim viewResult = viewEngine.FindView(actionContext, viewName, isMainPage:=False) If Not viewResult.Success Then ' Helpful error for debugging Dim searchedLocations = String.Join(Environment.NewLine, viewResult.SearchedLocations ?? Array.Empty(Of String)()) Throw New InvalidOperationException($"Couldn't find view '{viewName}'. Searched locations:{Environment.NewLine}{searchedLocations}") End If Await Using writer As New StringWriter() Dim viewContext As New ViewContext( actionContext, viewResult.View, ViewData, tempData, writer, New HtmlHelperOptions() ) Await viewResult.View.RenderAsync(viewContext) Return writer.ToString() End Using End Function End Class Public Class InvoiceModel Public Property InvoiceNumber As Integer Public Property InvoiceDate As DateTime Public Property CustomerName As String Public Property Items As List(Of ItemModel) Public Property TotalAmount As Decimal End Class Public Class ItemModel Public Property Description As String Public Property Quantity As Integer Public Property UnitPrice As Decimal Public ReadOnly Property LineTotal As Decimal Get Return Quantity * UnitPrice End Get End Property End Class $vbLabelText $csharpLabel Razor View PDF 生成の結果はどうなるでしょうか? ! PDF 請求書が Web ブラウザに表示され、Acme Corp の請求書番号 1001 と 2 つの項目の合計が 250.00 ドルであることが示されています。これは、Razor ビューから PDF への変換が成功したことを示しています。 このヘルパー メソッドにより、Razor ビューのコンテンツを HTML 文字列にレンダリングするためのクリーンなパスが確保され、その後 IronPDF がそれを変換できるようになります。 Razor to PDF チュートリアルでは、このワークフローについて詳しく説明します。 Blazor アプリケーションの場合、コンポーネント レンダリングでも同様のアプローチが機能します。 ストリーミングで大きな PDF ファイルを扱うには? コンテナ化された環境で大きな PDF ドキュメントを処理する場合、ストリーミングによってパフォーマンスが向上し、メモリ使用量が削減されます。 MemoryStreamを使用すると、メモリ使用量を低く抑えながらファイルを効率的に提供できます。 public IActionResult StreamLargePdf() { var renderer = new ChromePdfRenderer(); // Configure for memory efficiency renderer.RenderingOptions.CreatePdfFormsFromHtml = false; // Reduce memory if forms not needed var pdf = renderer.RenderHtmlAsPdf("<h1>Large Document</h1><p>Content here...</p>"); // Optional: Compress for reduced bandwidth pdf.CompressImages(80); // 80% quality var stream = new MemoryStream(pdf.BinaryData); // Set response headers for optimal streaming Response.Headers.Add("Content-Length", pdf.BinaryData.Length.ToString()); Response.Headers.Add("Accept-Ranges", "bytes"); return new FileStreamResult(stream, "application/pdf"); } // Async version for better container performance public async Task<IActionResult> StreamLargePdfAsync() { var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Large Document</h1><p>Content here...</p>"); var stream = new MemoryStream(pdf.BinaryData); return new FileStreamResult(stream, "application/pdf"); } public IActionResult StreamLargePdf() { var renderer = new ChromePdfRenderer(); // Configure for memory efficiency renderer.RenderingOptions.CreatePdfFormsFromHtml = false; // Reduce memory if forms not needed var pdf = renderer.RenderHtmlAsPdf("<h1>Large Document</h1><p>Content here...</p>"); // Optional: Compress for reduced bandwidth pdf.CompressImages(80); // 80% quality var stream = new MemoryStream(pdf.BinaryData); // Set response headers for optimal streaming Response.Headers.Add("Content-Length", pdf.BinaryData.Length.ToString()); Response.Headers.Add("Accept-Ranges", "bytes"); return new FileStreamResult(stream, "application/pdf"); } // Async version for better container performance public async Task<IActionResult> StreamLargePdfAsync() { var renderer = new ChromePdfRenderer(); var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Large Document</h1><p>Content here...</p>"); var stream = new MemoryStream(pdf.BinaryData); return new FileStreamResult(stream, "application/pdf"); } Imports System.IO Imports System.Threading.Tasks Imports Microsoft.AspNetCore.Mvc Public Class PdfController Inherits Controller Public Function StreamLargePdf() As IActionResult Dim renderer As New ChromePdfRenderer() ' Configure for memory efficiency renderer.RenderingOptions.CreatePdfFormsFromHtml = False ' Reduce memory if forms not needed Dim pdf = renderer.RenderHtmlAsPdf("<h1>Large Document</h1><p>Content here...</p>") ' Optional: Compress for reduced bandwidth pdf.CompressImages(80) ' 80% quality Dim stream As New MemoryStream(pdf.BinaryData) ' Set response headers for optimal streaming Response.Headers.Add("Content-Length", pdf.BinaryData.Length.ToString()) Response.Headers.Add("Accept-Ranges", "bytes") Return New FileStreamResult(stream, "application/pdf") End Function ' Async version for better container performance Public Async Function StreamLargePdfAsync() As Task(Of IActionResult) Dim renderer As New ChromePdfRenderer() Dim pdf = Await renderer.RenderHtmlAsPdfAsync("<h1>Large Document</h1><p>Content here...</p>") Dim stream As New MemoryStream(pdf.BinaryData) Return New FileStreamResult(stream, "application/pdf") End Function End Class $vbLabelText $csharpLabel 従来のASP.NET Web フォームプロジェクトでは、適切なリソース クリーンアップを備えたイベント ハンドラーを使用して同様の機能を実装できます。 protected void btnGeneratePdf_Click(object sender, EventArgs e) { using (var renderer = new ChromePdfRenderer()) { var pdf = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>"); Response.ContentType = "application/pdf"; Response.BinaryWrite(pdf.BinaryData); Response.End(); } } protected void btnGeneratePdf_Click(object sender, EventArgs e) { using (var renderer = new ChromePdfRenderer()) { var pdf = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>"); Response.ContentType = "application/pdf"; Response.BinaryWrite(pdf.BinaryData); Response.End(); } } Protected Sub btnGeneratePdf_Click(sender As Object, e As EventArgs) Using renderer = New ChromePdfRenderer() Dim pdf = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>") Response.ContentType = "application/pdf" Response.BinaryWrite(pdf.BinaryData) Response.End() End Using End Sub $vbLabelText $csharpLabel 高パフォーマンスのシナリオでは、複数の PDF を生成するときに、非同期メソッドと並列処理の使用を検討してください。 IronPDF パフォーマンス ガイドでは、詳細な最適化戦略が提供されています。 この PDF ビューア コントロールはどのような機能をサポートしていますか? ブラウザのネイティブ PDF ビューアを活用することで、ユーザーは、コンテンツをコピーするためのテキスト選択、特定のデータを見つけるための検索機能、物理コピーの印刷オプション、オフライン アクセス用のダウンロード機能など、豊富な機能を自動的に利用できるようになります。 このアプローチは、ユーザーが既存のドキュメントをアップロードして表示、編集、またはマージする必要があるシナリオにも対応します。 IronPDF のサーバー側処理は、 JavaScript の実行、 CSS のレンダリング、およびフォーム (ユーザーが入力できるインタラクティブな要素を含む) を処理します。 このフレームワークは、タグ ヘルパーの統合、カスタム ページ サイズ、ヘッダーとフッター、透かし、さらには編集機能もサポートしています。 セキュリティ機能としては、IronPDF は長期アーカイブのための暗号化、デジタル署名、 PDF/A 準拠を提供します。 コンテナ化されたデプロイメントの場合、IronPDF は以下を提供します。 Wineや複雑な依存関係のないネイティブLinuxサポート 依存関係が事前に設定されたDocker ベースイメージ PDF生成を個別にスケーリングするためのリモートエンジンの展開 オーケストレーションプラットフォームのヘルスチェックエンドポイント リソースが制限された環境向けのメモリ最適化設定 完全な機能の概要については、 IronPDF の機能ページをご覧ください。 実装に向けた次のステップは何ですか? ASP.NETウェブアプリケーションでPDFビューアを作成するのはIronPDFを使えば非常に簡単です。 強力なレンダリング エンジンとブラウザーの組み込み PDF ビューアーを組み合わせることで、Web アプリケーションで PDF ファイルを表示、処理、操作するためのプロフェッショナルなソリューションが得られます。 HTML 、 URL 、またはRazor ビューを変換する場合でも、実装には最小限のコードで最大限の機能を実現できます。 実稼働環境での展開では、次の点を考慮してください。 PDF生成メトリクスの監視とログ記録の設定 頻繁にアクセスされるPDFのキャッシュ戦略の実装 CDN配信を使用してグローバルPDF配信 PDF生成負荷に基づいて自動スケーリングポリシーを構成する プロジェクトにPDFビューを実装する準備はできていますか? IronPDFの無料トライアルから始めて、あなたの.NET Coreウェブアプリケーションがドキュメントをどのように扱うかを変えてください。 本番環境への導入については、チームのニーズに合ったライセンスオプションを確認してください。 もっと多くの変換例を見たいですか? 役に立つハウツー ガイドで、IronPDF がDOCX から PDF への変換、画像から PDF への変換などをどのように処理するかをご覧ください。 今IronPDFを始めましょう。 無料で始める よくある質問 ASP.NETウェブアプリケーションでPDFビューアを作成するには? IronPDFを使ってASP.NETウェブアプリケーションにPDFビューアを作成することができます。これはアプリケーション内でPDFドキュメントを直接表示することを可能にし、Adobe Acrobat Readerのような外部ツールを必要としないシームレスな表示体験を提供します。 ASP.NETでPDFを見るためにIronPDFを使う利点は何ですか? IronPDFはASP.NETアプリケーションでスムーズで統合されたPDF表示体験を提供します。ドキュメントをインラインで表示でき、様々なファイルタイプをサポートし、サードパーティのPDFビューアを必要としないため、ユーザーエクスペリエンスが向上します。 ASP.NETウェブアプリケーションでインタラクティブなPDFフォームを表示できますか? IronPDFを使えば、ASP.NETウェブアプリケーション内にインタラクティブなPDFフォームを表示することができます。フォームフィールドとインタラクティブ要素のレンダリングをサポートし、ユーザーがブラウザで直接ドキュメントと対話できるようにします。 ASP.NETでIronPDFを使って請求書やレポートを表示することはできますか? IronPDFはASP.NETアプリケーションで請求書やレポート、その他のドキュメントを表示するのに適しています。IronPDFはWebアプリケーション内でドキュメントが正確かつ効率的にレンダリングされることを保証します。 IronPDFを使ったASP.NETアプリケーションでPDFを見るにはAdobe Acrobat Readerが必要ですか? IronPDFを使えば、ASP.NETアプリケーションでPDFを見るためにAdobe Acrobat Readerは必要ありません。サードパーティに依存することなく、ブラウザで直接PDFをレンダリングして表示することができます。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 2026年1月22日 .NETでIronPDFを使ってPDFドキュメントを作成する方法:完全ガイド C#で開発者向けにPDFファイルを作成する効果的な方法を発見します。コーディングスキルを向上させ、プロジェクトを効率化します。この記事を今すぐお読みください! 詳しく読む 更新日 2026年1月21日 VB.NETでPDFファイルをマージする方法:完全なチュートリアル IronPDF で PDF をマージします。シンプルな VB.NET コードを使用して、複数の PDF ファイルを1つのドキュメントに結合する方法を学びます。ステップバイステップの例が含まれています。 詳しく読む 更新日 2026年1月21日 C# PDFWriter チュートリアル:.NETでPDFドキュメントを作成する このステップバイステップガイドで開発者がC# PDFWriterを使用してPDFを効率的に作成する方法を学びます。記事を読んでスキルを向上させましょう! 詳しく読む IronPDFでPDFを新しいウィンドウで開く方法 ASP.NET C# with IronPDFVB .NET PictureBoxでPDFを表示...
更新日 2026年1月22日 .NETでIronPDFを使ってPDFドキュメントを作成する方法:完全ガイド C#で開発者向けにPDFファイルを作成する効果的な方法を発見します。コーディングスキルを向上させ、プロジェクトを効率化します。この記事を今すぐお読みください! 詳しく読む
更新日 2026年1月21日 VB.NETでPDFファイルをマージする方法:完全なチュートリアル IronPDF で PDF をマージします。シンプルな VB.NET コードを使用して、複数の PDF ファイルを1つのドキュメントに結合する方法を学びます。ステップバイステップの例が含まれています。 詳しく読む
更新日 2026年1月21日 C# PDFWriter チュートリアル:.NETでPDFドキュメントを作成する このステップバイステップガイドで開発者がC# PDFWriterを使用してPDFを効率的に作成する方法を学びます。記事を読んでスキルを向上させましょう! 詳しく読む