ASP.NET用PDFビューア:.NET 10でPDFを表示する方法
ASP.NET Coreで PDF ビューアーを実装するには、 IronPDFを使用して HTML、URL、またはRazorビューから PDF を生成します。 インラインブラウザ表示用の適切なヘッダーを提供することで、外部プラグインやダウンロードなしでもスムーズなドキュメント表示エクスペリエンスを実現します。
Webアプリケーションを.NETで構築する際、PDFドキュメントをブラウザで直接表示することがよく求められます。 請求書、レポート、インタラクティブな PDF フォームなど、ユーザーは Adobe Acrobat Reader やその他のサードパーティ製ブラウザー ツールを必要とせずに、スムーズにドキュメントを表示できることを期待しています。
このチュートリアルでは、 IronPDFを使用してASP.NETおよび.NET Core用の PDF ビューアーを実装する方法を学習します。 この信頼性の高い PDF ビューア コントロールを使用すると、開発者は.NETアプリケーション内で PDF ファイルを作成、レンダリング、表示することができ、ビジネスに不可欠なドキュメントを処理するためのプロフェッショナルなソリューションが提供されます。 ここで説明するアプローチは、 .NET 10およびそれ以前のすべての.NET Coreバージョンで機能します。
ASP.NET CoreでのPDF表示がどのように機能するか?
最新のブラウザは組み込みの PDF ビューアとして機能します。 正しいMIMEタイプ(@--CODE-1444--@@)でPDFファイルを提供すると、ブラウザは自動的にそれをインラインで表示します。つまり、PDF文書の閲覧やPDFファイルの表示に外部プラグインは必要ありません。 肝心なのは、高品質のPDFを生成し、適切なレスポンスヘッダーを設定することです。
IronPDFは、HTML、Razorビュー、または既存のドキュメントからピクセルパーフェクトなPDFページを作成することに優れた、頻繁に更新される.NET PDFライブラリです。 Chrome ベースのレンダリング エンジンにより、正確な CSS、 JavaScript、画像のサポートが保証され、デスクトップ PDF ビューアーに匹敵する表示エクスペリエンスがユーザーに提供されます。 機能の完全なリストについては、 IronPDF の機能ページをご覧ください。
リクエストがASP.NET Coreコントローラーにヒットしたとき、ワークフローは簡単です:IronPDFを使ってPDFを生成(またはロード)し、Content-Dispositionレスポンスヘッダをinlineに設定し、MIMEタイプをapplication/pdfに指定し、バイナリデータを返します。 ブラウザはレンダリングを自動的に処理します。JavaScript PDF.js のセットアップは必要なく、JavaScript拡張機能に依存することもありません。
このパターンを早期に理解することで、開発時間を節約できます。複雑なJavaScriptビューアライブラリを統合する代わりに、レンダリング作業をブラウザに委譲し、IronPDFを純粋にサーバーサイドでの生成と操作のために使用します。ASP.NET Core documentation on file responses は、これらのパターンで使用される基礎となるFileResult型について説明しています。
ASP.NET Coreプロジェクトをどのようにセットアップしますか?
まず、新しいASP.NET Core MVC アプリケーションを作成します。 ターミナルを開いて次のコマンドを実行します:
dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
これは、MVC サポートを備えた基本的な.NETアプリケーションを構築します。 MVC 構造により、PDF 生成リクエストを処理するコントローラーと、フロントエンド インターフェイスを構築するためのビューが提供されます。 専用のPdfControllerは、PDF関連のロジックを整理し、アプリケーションの成長に合わせて保守しやすくします。
IronPDFをインストールして設定するにはどうすればよいですか?
IronPDFのインストールは数ステップで完了します。 Visual StudioのNuGet Package Managerコンソールまたは.NET CLIのいずれかを使用してください:
# Package Manager Console (Visual Studio)
Install-Package IronPdf
# .NET CLI
dotnet add package IronPdf
# Package Manager Console (Visual Studio)
Install-Package IronPdf
# .NET CLI
dotnet add package IronPdf
次に、Program.csでライブラリを設定します:
using IronPdf;
// Set license key at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
using IronPdf;
// Set license key at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronPdf
' Set license key at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
PDFを操作する前に、ライセンスキーをProgram.csに設定してください。 開発および評価用に無料の試用ライセンスが利用可能です。 IronPDF のドキュメントには、Azure や Docker などのさまざまなデプロイメント環境向けの追加の構成例が記載されています。
表示用の PDF をどのように生成しますか?
IronPDF を使用すると、生の HTML 文字列、ライブ Web ページ、またはRazorビューから PDF ファイルを作成できます。 生成された PDF ドキュメントは、わずか数行の C# コードでインライン表示できます。
このアプローチにより、ダウンロードの強制が回避され、クライアント側に追加のビューア コンポーネントがなくても、ユーザーはブラウザ内で直接 PDF を表示、印刷、検索、保存できるようになります。
HTML 文字列から PDF を作成するにはどうすればよいでしょうか?
最も簡単な方法は、HTML 文字列を直接 PDF に変換することです。 このパターンを使用して、レポートや請求書などの動的コンテンツを生成します。
using IronPdf;
var renderer = new ChromePdfRenderer();
string html = @"
<html>
<head>
<style>
body { font-family: Arial; padding: 20px; }
h1 { color: #333; }
</style>
</head>
<body>
<h1>Sample PDF Document</h1>
<p>This PDF was generated using IronPDF in ASP.NET Core.</p>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(html);
// Return PDF to browser for inline viewing
return File(pdf.BinaryData, "application/pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
string html = @"
<html>
<head>
<style>
body { font-family: Arial; padding: 20px; }
h1 { color: #333; }
</style>
</head>
<body>
<h1>Sample PDF Document</h1>
<p>This PDF was generated using IronPDF in ASP.NET Core.</p>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(html);
// Return PDF to browser for inline viewing
return File(pdf.BinaryData, "application/pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim html As String = "
<html>
<head>
<style>
body { font-family: Arial; padding: 20px; }
h1 { color: #333; }
</style>
</head>
<body>
<h1>Sample PDF Document</h1>
<p>This PDF was generated using IronPDF in ASP.NET Core.</p>
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Return PDF to browser for inline viewing
Return File(pdf.BinaryData, "application/pdf")
正確なレンダリングのためにChromiumエンジンを使用するChromePdfRenderer@を作成します。 HTML(インラインCSS付き)はRenderHtmlAsPdfに渡され、PdfDocumentが生成されます。 ファイルをapplication/pdf MIMEタイプで返すと、ブラウザが確実にインラインで表示します。この変換方法の詳細については、HTML文字列からPDFへのガイドを参照してください。
URL から PDF を生成するにはどうすればよいでしょうか?
既存の Web ページを PDF に変換することも同様に簡単です。 これは、ライブ コンテンツをアーカイブしたり、Web ページとして公開されたレポートのスナップショットを生成したりするのに役立ちます。
using IronPdf;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(3000);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
var pdf = renderer.RenderUrlAsPdf("https://example.com/report");
Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf");
return File(pdf.BinaryData, "application/pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(3000);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
var pdf = renderer.RenderUrlAsPdf("https://example.com/report");
Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf");
return File(pdf.BinaryData, "application/pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.JavaScript(3000)
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Dim pdf = renderer.RenderUrlAsPdf("https://example.com/report")
Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf")
Return File(pdf.BinaryData, "application/pdf")
CODE-1456--@@メソッドは、ページを取得し、スタイルとスクリプトを適用し、洗練されたPDFを出力します。 CODE-1457--@@ヘッダーをinlineに設定すると、ファイルはブラウザのPDFビューアで開かれます。 JavaScriptレンダリング オプションにより、キャプチャ前に動的コンテンツが適切に読み込まれるようになります。
Razorビューを PDF に変換するにはどうすればよいでしょうか?
Razorビューは、同じテンプレートで Web ページと PDF 出力の両方を提供できるため、請求書などの構造化ドキュメントに最適なテンプレートです。 ビューを HTML 文字列にレンダリングし、それをIronPDFに渡します。
using IronPdf;
// Render the Razor view to an HTML string first
var htmlContent = await RenderViewToString("Invoice", invoiceModel);
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
return File(pdf.BinaryData, "application/pdf");
using IronPdf;
// Render the Razor view to an HTML string first
var htmlContent = await RenderViewToString("Invoice", invoiceModel);
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
return File(pdf.BinaryData, "application/pdf");
Imports IronPdf
' Render the Razor view to an HTML string first
Dim htmlContent As String = Await RenderViewToString("Invoice", invoiceModel)
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
Return File(pdf.BinaryData, "application/pdf")
ビューは、まずヘルパーメソッドを使ってHTML文字列にレンダリングされ、次にRenderHtmlAsPdfを使って変換されます。 このアプローチにより、Web 表示と PDF 生成の両方でRazorテンプレートを再利用することができ、出力が形式間で一貫していることが保証されます。 HTML から PDF へのハウツー ガイドでは、追加のRazor統合パターンについて説明します。
ブラウザで PDF をインラインで表示するにはどうすればよいですか?
PDF をインラインで表示する(ダウンロードをトリガーするのではなく)ための鍵は、正しい応答ヘッダーを設定することにあります。 最新のブラウザでは、コンテンツ タイプと配置が適切に構成されている場合、インライン PDF 表示がサポートされます。
CODE-1460--@を設定すると、ブラウザにPDFを直接レンダリングするように指示し、@@--CODE-1461--@を設定すると、ダウンロードダイアログを表示するように指示します。 違いは単一のヘッダー値の変更ですが、ユーザー エクスペリエンスに大きな影響を与えます。
また、表示されるドキュメントにヘッダーとフッターを追加してページ番号やブランドを設定したり、カスタム透かしを追加してドキュメントを下書きや機密としてマークしたりすることもできます。
動的な PDF 読み込みを有効にするにはどうすればよいでしょうか?
ページ全体を更新せずに複数のドキュメントを切り替える必要があるアプリケーションの場合は、コントローラーのエンドポイントと組み合わせた iframe を使用します。
using IronPdf;
using Microsoft.AspNetCore.Mvc;
// Controller action to list available PDFs
[HttpGet]
public IActionResult GetPdfList()
{
var pdfs = new List<object>
{
new { id = 1, name = "Report 1" },
new { id = 2, name = "Report 2" }
};
return Json(pdfs);
}
// Controller action to generate and return a specific PDF
[HttpGet]
public IActionResult GetPdf(int id)
{
var renderer = new ChromePdfRenderer();
string html = $"<h1>Report {id}</h1><p>Content for report {id}.</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
Response.Headers.Add("Content-Disposition", $"inline; filename=report-{id}.pdf");
return File(pdf.BinaryData, "application/pdf");
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
// Controller action to list available PDFs
[HttpGet]
public IActionResult GetPdfList()
{
var pdfs = new List<object>
{
new { id = 1, name = "Report 1" },
new { id = 2, name = "Report 2" }
};
return Json(pdfs);
}
// Controller action to generate and return a specific PDF
[HttpGet]
public IActionResult GetPdf(int id)
{
var renderer = new ChromePdfRenderer();
string html = $"<h1>Report {id}</h1><p>Content for report {id}.</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
Response.Headers.Add("Content-Disposition", $"inline; filename=report-{id}.pdf");
return File(pdf.BinaryData, "application/pdf");
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
' Controller action to list available PDFs
<HttpGet>
Public Function GetPdfList() As IActionResult
Dim pdfs = New List(Of Object) From {
New With {.id = 1, .name = "Report 1"},
New With {.id = 2, .name = "Report 2"}
}
Return Json(pdfs)
End Function
' Controller action to generate and return a specific PDF
<HttpGet>
Public Function GetPdf(id As Integer) As IActionResult
Dim renderer = New ChromePdfRenderer()
Dim html As String = $"<h1>Report {id}</h1><p>Content for report {id}.</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
Response.Headers.Add("Content-Disposition", $"inline; filename=report-{id}.pdf")
Return File(pdf.BinaryData, "application/pdf")
End Function
クライアント側では、 Razorビュー内の短いJavaScriptスニペットを使用して iframe ソースを更新し、ページを再読み込みせずにさまざまな PDF を読み込みます。 コントローラーは要求に応じて PDF を生成し、応答サイズを予測可能に保ちます。 大きなドキュメントの場合は、このパターンをIronPDF の結合および分割機能と組み合わせて、ドキュメントをセクションで提供します。
デプロイメントとパフォーマンスをどのように処理しますか?
IronPDFはASP.NET、ASP.NET Core、Blazorサーバプロジェクト全体で動作します。 Windows Server でホストしたり、Azure にデプロイしたり、Docker を使用してコンテナー化したりできます。 .NET 10と以前のバージョンを完全にサポートしているため、最新のアプリケーションと従来のアプリケーションの両方に統合できます。
Azure にデプロイするにはどうすればよいでしょうか?
Azure App Service にデプロイする場合、 IronPDF は最小限の追加構成で動作します。 パフォーマンスを最適化するために、App Serviceプランが少なくともB1ティアであることを確認してください。 IronPDFはChromeレンダリングエンジンのデプロイを自動で処理します。
Linux 上のコンテナ化されたデプロイメントの場合、必要なシステム依存関係を Dockerfile に追加します。
RUN apt-get update && apt-get install -y libgdiplus
RUN apt-get update && apt-get install -y libgdiplus
IronPDF のドキュメントでは、プラットフォーム固有の Linux 要件について詳しく説明しています。 完全な Chrome レンダリング エンジンが必要ない場合は、コンテナー イメージのサイズを縮小するためにIronPDF Slim の使用を検討してください。
パフォーマンスに関する主な考慮事項は何ですか?
PDF を提供するアプリケーションのパフォーマンスは、PDF が生成される頻度とサイズによって異なります。 ほとんどの本番環境の展開には、次のプラクティスが適用されます。
- メモリストリームまたは分散キャッシュを使用して、基礎となるコンテンツが頻繁に変更されない場合に生成されたPDFをキャッシュします。
- PDF生成中にスレッドがブロックされるのを避けるために非同期コントローラーアクションを使用する
- 複雑なHTMLページに対して、 JavaScriptを多用した適切なレンダリングタイムアウトを設定する
- 配信前に透かしと圧縮を適用してファイルサイズを縮小します
- ドキュメント一覧に完全なPDFを読み込むのではなく、プレビューサムネイルを生成するためにPDFから画像への変換を有効にする
- ブラウザの組み込みPDF検索に頼るのではなく、テキスト抽出を使用してサーバー側の検索インデックスを構築します。
一般的な PDF 表示の問題をどのようにトラブルシューティングしますか?
PDF が表示されるのではなくダウンロードされるのはなぜですか?
PDF がインラインで表示されるのではなくダウンロードされる場合は、応答ヘッダーが正しく設定されていることを確認してください。 MIMEタイプが正確にapplication/pdfであり、Content-Dispositionが@@--CODE-1465--@ではなく、@@--CODE-1464--@に設定されていることを確認してください:
Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
return File(pdf.BinaryData, "application/pdf");
Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
return File(pdf.BinaryData, "application/pdf");
Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf")
Return File(pdf.BinaryData, "application/pdf")
一部のプロキシおよびロード バランサは応答ヘッダーを削除または変更します。開発者ツールを使用して、ヘッダーがブラウザに到達することを確認してください。 クロスオリジンシナリオの場合、設定を一元化するために、個々のレスポンスではなく、Program.cs@にCORSヘッダーを追加してください。 PDF に機密データが含まれている場合は、CORS 制限のみに頼るのではなく、 PDF 署名とパスワード保護を適用します。
大きな PDF ファイルをどのように処理しますか?
大きなドキュメントの場合、ストリーミングによりサーバーのメモリ負荷が軽減されます。 生のバイト配列を返す代わりに、FileStreamResultを使用してください:
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent);
var stream = new MemoryStream(pdf.BinaryData);
return new FileStreamResult(stream, "application/pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent);
var stream = new MemoryStream(pdf.BinaryData);
return new FileStreamResult(stream, "application/pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(largeHtmlContent)
Dim stream As New MemoryStream(pdf.BinaryData)
Return New FileStreamResult(stream, "application/pdf")
非常に大きなドキュメントの場合は、 IronPDF の結合および分割機能を使用してドキュメントをセクションに分割し、ユーザー インターフェイスでページ区切りを実装することを検討してください。 これにより、個々の PDF 応答のサイズが小さくなり、読み込みが速くなります。 Microsoft のASP.NET Coreの大容量ファイル ガイダンスでは、PDF 配信に関連するバッファリング戦略についても説明しています。
IronPDFをさらに活用するにはどうすればよいでしょうか?
ASP.NET Coreで PDF ビューアーを構築する場合、複雑なサードパーティのビューアー ライブラリは必要ありません。 IronPDFのサーバーサイドレンダリングエンジンとブラウザのネイティブPDFサポートを組み合わせることで、スケーラビリティに優れ、クライアント側の設定を最小限に抑えたプロフェッショナルなドキュメント表示ソリューションを実現できます。IronPDFのホームページでは、ライブラリ全体の概要と入門リソースを提供しています。
ここから、実装をいくつかの方向に拡張できます。
- 機密文書に透かしを追加する
- 法的に拘束力のある出力のためのデジタル署名を実装する
- PDFフォームを操作してユーザー入力を収集し、入力されたPDFを生成します
- ページ番号とブランドを含むヘッダーとフッターを追加します -テキスト抽出を使用して、ドキュメントコンテンツ全体のサーバー側検索を強化します
- PDFを画像に変換してプレビューサムネイルを生成する
完全な API リファレンスについては、 IronPDF のドキュメントをご覧ください。 今すぐ構築を開始するには、 IronPDFの無料トライアルを入手してください。クレジットカードは必要ありません。
よくある質問
ASP.NETアプリケーションでPDFドキュメントを表示するための最良の方法は何ですか?
IronPDFを使用すると、開発者はASP.NETアプリケーション内でPDFドキュメントを簡単にブラウザに直接レンダリングでき、Adobe Acrobat Readerなどのサードパーティツールを必要とせずにシームレスなユーザーエクスペリエンスを提供できます。
IronPDFはWebアプリケーションでPDF表示を強化するために使用できますか?
はい、IronPDFはスムーズな統合によってPDF表示を強化するために設計されており、ユーザーが簡単かつ効率的にPDFドキュメントを閲覧できるようにします。
ASP.NETでIronPDFを使用しているときにPDFを表示するのに追加のツールが必要ですか?
いいえ、IronPDFはAdobe Acrobat Readerのような追加ツールを必要とせず、ASP.NETアプリケーション内で直接PDFを表示するための組み込みソリューションを提供します。
.NET WebアプリケーションでPDFビューアを実装するにはどうすればいいですか?
IronPDFを.NET Webアプリケーションに統合することで、さまざまなPDF機能をサポートし、ユーザーフレンドリーなインターフェースを提供する強力なPDFビューアを実装できます。
ASP.NETのPDF表示にIronPDFを使用すべき理由は何ですか?
IronPDFは、外部プラグインに依存せずにユーザーにシームレスなエクスペリエンスを提供する、ASP.NETアプリケーション向けの信頼性の高い効率的なPDF表示ソリューションを提供します。
IronPDFを使用してインタラクティブなPDFフォームを表示することはできますか?
はい、IronPDFはインタラクティブなPDFフォームの表示をサポートしており、ユーザーがブラウザ内で直接PDFドキュメントを記入および操作できるようにします。
IronPDFを使用して表示できるPDFドキュメントの種類は何ですか?
IronPDFは、請求書、レポート、インタラクティブフォームなどのさまざまな種類のPDFドキュメントを処理することができ、あらゆるASP.NETアプリケーションにおいて多用途なツールとなっています。
IronPDF は PDF の生成と表示に .NET 10 をサポートしていますか?
はい。IronPDFは.NET 10に加え、.NET 9、8、7、6、そして.NET CoreとFrameworkといった以前のバージョンも完全にサポートしています。つまり、IronPDFを最新の.NET 10 ASP.NETまたはBlazorアプリケーションで使用し、ブラウザ内でPDFをインラインで生成、配信、表示することができます。(ironpdf.com)


