ASP.NET CoreでのPDFビューアー: C#でPDFをインライン表示
ASP.NET Coreアプリケーションに PDF ビューアを組み込むのは、ほとんどの開発者が予想するよりも簡単です。 サーバー側で PDF を生成し、正しい MIME タイプで返すことで、プラグインや Adobe Acrobat Reader を必要とせず、最新のブラウザーでドキュメントを直接表示できます。 IronPDF はChrome ベースのエンジンを通じてレンダリングを処理し、HTML、CSS、 JavaScript をブラウザの組み込みビューアにインラインで表示される高忠実度の PDF に変換します。
このチュートリアルでは、HTML 文字列から生成された PDF の表示、ライブ URL のレンダリング、 Razorビューの変換、大きなファイルのストリーミング、これらすべてをASP.NET Core MVC コントローラーに接続するなど、すべての主要なシナリオについて説明します。 コード例は、該当する場合はトップレベルのステートメントを使用して.NET 10 を対象としています。
ASP.NETでのブラウザベースの PDF 表示はどのように機能しますか?
最新のブラウザには PDF ビューアが組み込まれています。 サーバーが Content-Type: application/pdf ヘッダーで応答すると、ブラウザはファイルのダウンロードをトリガーする代わりに、ドキュメントをインラインでレンダリングします。 重要なのは、そのヘッダーを Content-Disposition: inline と組み合わせることです。
サーバー側では、有効な PDF バイナリを生成し、それを FileResult を通じて返す必要があります。 ブラウザは、追加の UI コードなしで、ページ区切り、ズーム、テキスト選択、検索、印刷、ダウンロードを処理します。
IronPDF はこのパターンに自然に適合します。 その ChromePdfRenderer クラスは HTML (またはライブ URL) を PDF バイナリに変換し、そのバイナリを ASP.NET の File() ヘルパーに直接渡します。 その結果、Chrome、Firefox、Edge、Safari で動作するフル機能のドキュメント ビューアーが完成しました。
最新のブラウザは、ネイティブ ビューア エンジンを通じてW3C PDF レンダリング仕様を実装しています。つまり、サーバーから返される準拠 PDF は、追加の構成を行わなくても正しく表示されます。 IronPDF の出力は標準に完全に準拠しているため、ブラウザのバージョン間で一貫したレンダリングを実現できます。
コンテナ化されたデプロイメントの場合、 IronPDF はChromium の依存関係を事前構成した公式 Docker イメージを提供するため、各ノードに Chrome を手動でインストールする必要はありません。 Linux コンテナと Windows コンテナの両方がサポートされています。 PDF 生成を個別に拡張する必要がある場合は、 IronPDF Engine Docker イメージを使用すると、レンダリング プロセスを別のマイクロサービスとして実行できます。
ASP.NET CoreプロジェクトにIronPDFをインストールするにはどうすればよいでしょうか?
Visual Studio でASP.NET Coreプロジェクトを開き、 NuGetパッケージ マネージャー コンソールからIronPDFをインストールします。
Install-Package IronPdf
Install-Package IronPdf
または.NET CLIを使用します:
dotnet add package IronPdf
dotnet add package IronPdf
インストール後、 IronPDF API を呼び出す前に、ライセンス キーをProgram.cs に追加します。
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Azureにデプロイする場合は、ライセンス キーをハードコーディングするのではなく、Azure Key Vault または App Configuration に保存します。 AWS Lambda デプロイメントの場合、Lambda 関数設定で構成された環境変数を使用します。
これでセットアップは完了です。IronPDFはWindows 実行時に Chromium を自動的に検出して設定します。 Linux の場合、必要なシステム パッケージについてはLinux セットアップ ガイドを参照してください。
実稼働用のライセンス レベルを選択する前に、無料トライアルで完全な機能セットを評価することができます。
HTML 文字列から PDF を生成して表示するにはどうすればよいですか?
PDFをユーザーの前に表示する最も簡単な方法は、HTML文字列をレンダリングしてインラインで返すことです。PdfControllerというコントローラーを作成し、次のようなアクションを追加します。
using IronPdf;
using Microsoft.AspNetCore.Mvc;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
var app = builder.Build();
app.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
public class PdfController : Controller
{
private readonly ChromePdfRenderer _renderer;
public PdfController()
{
_renderer = new ChromePdfRenderer();
_renderer.RenderingOptions.WaitFor.RenderDelay(100);
_renderer.RenderingOptions.Timeout = 30;
}
public IActionResult DisplayFromHtml()
{
string html = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; padding: 40px; }
h1 { color: #2c3e50; }
p { line-height: 1.7; color: #444; }
</style>
</head>
<body>
<h1>Sample PDF Document</h1>
<p>This PDF was generated using IronPDF in an ASP.NET Core application.</p>
</body>
</html>";
PdfDocument pdf = _renderer.RenderHtmlAsPdf(html);
Response.Headers.Append("Content-Disposition", "inline; filename=document.pdf");
return File(pdf.BinaryData, "application/pdf");
}
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
var app = builder.Build();
app.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
public class PdfController : Controller
{
private readonly ChromePdfRenderer _renderer;
public PdfController()
{
_renderer = new ChromePdfRenderer();
_renderer.RenderingOptions.WaitFor.RenderDelay(100);
_renderer.RenderingOptions.Timeout = 30;
}
public IActionResult DisplayFromHtml()
{
string html = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; padding: 40px; }
h1 { color: #2c3e50; }
p { line-height: 1.7; color: #444; }
</style>
</head>
<body>
<h1>Sample PDF Document</h1>
<p>This PDF was generated using IronPDF in an ASP.NET Core application.</p>
</body>
</html>";
PdfDocument pdf = _renderer.RenderHtmlAsPdf(html);
Response.Headers.Append("Content-Disposition", "inline; filename=document.pdf");
return File(pdf.BinaryData, "application/pdf");
}
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Dim builder = WebApplication.CreateBuilder(args)
builder.Services.AddControllersWithViews()
Dim app = builder.Build()
app.MapControllerRoute(name:="default", pattern:="{controller=Home}/{action=Index}/{id?}")
app.Run()
Public Class PdfController
Inherits Controller
Private ReadOnly _renderer As ChromePdfRenderer
Public Sub New()
_renderer = New ChromePdfRenderer()
_renderer.RenderingOptions.WaitFor.RenderDelay(100)
_renderer.RenderingOptions.Timeout = 30
End Sub
Public Function DisplayFromHtml() As IActionResult
Dim html As String = "
<html>
<head>
<style>
body { font-family: Arial, sans-serif; padding: 40px; }
h1 { color: #2c3e50; }
p { line-height: 1.7; color: #444; }
</style>
</head>
<body>
<h1>Sample PDF Document</h1>
<p>This PDF was generated using IronPDF in an ASP.NET Core application.</p>
</body>
</html>"
Dim pdf As PdfDocument = _renderer.RenderHtmlAsPdf(html)
Response.Headers.Append("Content-Disposition", "inline; filename=document.pdf")
Return File(pdf.BinaryData, "application/pdf")
End Function
End Class
レンダリングされた PDF はブラウザでどのように表示されますか?

ChromePdfRenderer は内部で Chromium を使用しているため、CSS グリッド、フレックスボックス、Web フォント、最新の CSS 機能はすべて正確にレンダリングされます。 Content-Disposition を inline に設定すると、ブラウザはファイルを保存するのではなく表示するように指示されます。 その値を attachment に変更すると、ブラウザはユーザーに代わりにダウンロードを促します。
複雑なレイアウトのドキュメントの場合は、カスタム用紙サイズ、余白、印刷 CSS メディア タイプなどのレンダリング オプションを使用して出力を微調整できます。 WaitFor API は、ネットワーク遅延により外部アセットの読み込みが遅れる可能性があるコンテナ化された環境で特に役立ちます。
HTML 変換オプションの詳細については、 HTML 文字列から PDF へのガイドを参照してください。
URL とRazorビューから PDF ファイルをレンダリングするにはどうすればよいですか?
IronPDF は、あらゆるライブ Web ページを PDF としてキャプチャできます。Web コンテンツをアーカイブしたり、既存のページからレポートを生成したりするのに最適です。 ASP.NET Core のドキュメントでは、コントローラー アクションが結果を返す方法について説明されており、ここで使用されているパターンです。
public IActionResult RenderFromUrl(string url = "https://en.wikipedia.org/wiki/Main_Page")
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.NetworkIdle();
PdfDocument pdf = renderer.RenderUrlAsPdf(url);
Response.Headers.Append("Content-Disposition", "inline; filename=webpage.pdf");
Response.Headers.Append("Cache-Control", "public, max-age=3600");
return File(pdf.BinaryData, "application/pdf");
}
public IActionResult RenderFromUrl(string url = "https://en.wikipedia.org/wiki/Main_Page")
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.NetworkIdle();
PdfDocument pdf = renderer.RenderUrlAsPdf(url);
Response.Headers.Append("Content-Disposition", "inline; filename=webpage.pdf");
Response.Headers.Append("Cache-Control", "public, max-age=3600");
return File(pdf.BinaryData, "application/pdf");
}
Public Function RenderFromUrl(Optional url As String = "https://en.wikipedia.org/wiki/Main_Page") As IActionResult
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
renderer.RenderingOptions.WaitFor.NetworkIdle()
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf(url)
Response.Headers.Append("Content-Disposition", "inline; filename=webpage.pdf")
Response.Headers.Append("Cache-Control", "public, max-age=3600")
Return File(pdf.BinaryData, "application/pdf")
End Function
URL ベースの PDF レンダリングはどのように表示されますか?

請求書や明細書テンプレートなどのRazorビューを変換する必要がある場合は、まずビューを HTML 文字列にレンダリングし、その文字列をIronPDFに渡します。 これにより、Web と PDF 出力の両方でテンプレートを再利用できるようになります。
public async Task<IActionResult> ViewToPdf()
{
var model = 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 }
}
};
model.TotalAmount = model.Items.Sum(i => i.LineTotal);
string htmlContent = await RenderViewToStringAsync("Invoice", model);
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 40;
renderer.RenderingOptions.MarginBottom = 40;
string baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrl);
return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToStringAsync(string viewName, object model)
{
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)
{
string searched = string.Join(
Environment.NewLine,
viewResult.SearchedLocations ?? Array.Empty<string>());
throw new InvalidOperationException(
$"Could not find view '{viewName}'. Searched:{Environment.NewLine}{searched}");
}
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 model = 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 }
}
};
model.TotalAmount = model.Items.Sum(i => i.LineTotal);
string htmlContent = await RenderViewToStringAsync("Invoice", model);
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 40;
renderer.RenderingOptions.MarginBottom = 40;
string baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrl);
return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToStringAsync(string viewName, object model)
{
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)
{
string searched = string.Join(
Environment.NewLine,
viewResult.SearchedLocations ?? Array.Empty<string>());
throw new InvalidOperationException(
$"Could not find view '{viewName}'. Searched:{Environment.NewLine}{searched}");
}
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.AspNetCore.Mvc.ViewEngines
Imports Microsoft.AspNetCore.Mvc.Rendering
Imports Microsoft.AspNetCore.Mvc.ViewFeatures
Imports Microsoft.Extensions.DependencyInjection
Imports IronPdf
Public Class YourController
Inherits Controller
Public Async Function ViewToPdf() As Task(Of IActionResult)
Dim model 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}
}
}
model.TotalAmount = model.Items.Sum(Function(i) i.LineTotal)
Dim htmlContent As String = Await RenderViewToStringAsync("Invoice", model)
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.MarginTop = 40
renderer.RenderingOptions.MarginBottom = 40
Dim baseUrl As String = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent, baseUrl)
Return File(pdf.BinaryData, "application/pdf")
End Function
Private Async Function RenderViewToStringAsync(viewName As String, model As Object) As Task(Of String)
Dim actionContext As New ActionContext(HttpContext, RouteData, ControllerContext.ActionDescriptor)
Dim viewEngine As IRazorViewEngine = HttpContext.RequestServices.GetRequiredService(Of IRazorViewEngine)()
Dim tempDataFactory As ITempDataDictionaryFactory = HttpContext.RequestServices.GetRequiredService(Of ITempDataDictionaryFactory)()
Dim tempData As ITempDataDictionary = tempDataFactory.GetTempData(HttpContext)
ViewData.Model = model
Dim viewResult As ViewEngineResult = viewEngine.FindView(actionContext, viewName, isMainPage:=False)
If Not viewResult.Success Then
Dim searched As String = String.Join(Environment.NewLine, viewResult.SearchedLocations ?? Array.Empty(Of String)())
Throw New InvalidOperationException($"Could not find view '{viewName}'. Searched:{Environment.NewLine}{searched}")
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
Razor View PDF 生成の結果はどうなるでしょうか?

baseUrl パラメータは、 Razorビューが相対 CSS または画像パスを参照するときに重要になります。 現在のホスト URL を渡すと、 IronPDF はそれらのパスを正しく解決できるようになります。 Blazorアプリケーション パターンを含む完全なチュートリアルについては、 Razorから PDF へのチュートリアルを参照してください。
ストリーミングで大きな PDF ファイルをどのように処理しますか?
ドキュメントのサイズが数メガバイトになる場合、ストリーミングによりピーク時のメモリ使用量が削減され、クライアントへのバイトの配信がより早く開始されます。 生のバイト配列では、File() の代わりに FileStreamResult を使用します。
public async Task<IActionResult> StreamLargePdf()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = false;
PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(
"<h1>Large Document</h1><p>Full content here...</p>");
pdf.CompressImages(80);
var stream = new MemoryStream(pdf.BinaryData);
Response.Headers.Append("Content-Length", pdf.BinaryData.Length.ToString());
Response.Headers.Append("Accept-Ranges", "bytes");
return new FileStreamResult(stream, "application/pdf");
}
public async Task<IActionResult> StreamLargePdf()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = false;
PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(
"<h1>Large Document</h1><p>Full content here...</p>");
pdf.CompressImages(80);
var stream = new MemoryStream(pdf.BinaryData);
Response.Headers.Append("Content-Length", pdf.BinaryData.Length.ToString());
Response.Headers.Append("Accept-Ranges", "bytes");
return new FileStreamResult(stream, "application/pdf");
}
Imports System.IO
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc
Public Class YourController
Inherits Controller
Public Async Function StreamLargePdf() As Task(Of IActionResult)
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = False
Dim pdf As PdfDocument = Await renderer.RenderHtmlAsPdfAsync("<h1>Large Document</h1><p>Full content here...</p>")
pdf.CompressImages(80)
Dim stream As New MemoryStream(pdf.BinaryData)
Response.Headers.Append("Content-Length", pdf.BinaryData.Length.ToString())
Response.Headers.Append("Accept-Ranges", "bytes")
Return New FileStreamResult(stream, "application/pdf")
End Function
End Class
CompressImages(80) は JPEG 品質を 80% に下げ、目に見える品質の低下を最小限に抑えながら、画像の多いドキュメントのファイル サイズを大幅に削減します。 Accept-Ranges: bytes を設定すると、ブラウザにバイト範囲のチャンクを要求できることが通知され、最初にファイル全体をダウンロードせずに大きな PDF 内でのシークを高速化できます。
ISO のPDF/A 仕様は、アーカイブ品質の PDF 要件を定義します。 アプリケーションで長期アーカイブ ドキュメントを作成する必要がある場合、IronPDF の PDF/A 準拠モードを使用すると、出力がそれらの標準を満たすことが保証されます。これは、規制や法律のワークフローに特に関連します。
従来のASP.NET Web フォーム プロジェクトの場合、HTTP 応答に直接書き込むため、パターンが若干異なります。
protected void btnGeneratePdf_Click(object sender, EventArgs e)
{
using var renderer = new ChromePdfRenderer();
PdfDocument 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();
PdfDocument 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 As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>")
Response.ContentType = "application/pdf"
Response.BinaryWrite(pdf.BinaryData)
Response.End()
End Using
End Sub
多数の PDF を同時に生成するワークロードの場合、高スループットのシナリオでメモリのオーバーヘッドを削減する設定については、 IronPDF非同期 API ガイドとパフォーマンス最適化リファレンスを確認してください。
ブラウザベースのビューアはユーザーにどのような機能を提供しますか?
ブラウザが PDF をインラインで表示すると、フル機能のビューアが自動的に表示されます。 ユーザーは、コンテンツをコピーするためのテキスト選択、特定の単語や数字を見つけるための組み込みの検索バー、印刷コントロール、ワンクリック ダウンロードを利用できます。これらはすべて、フロントエンド コードを記述することなく実行できます。
IronPDF は、基本的な表示機能以外にも、ビューアに表示される内容に影響する幅広いドキュメント機能をサポートしています。
- 動的なテキスト、ページ番号、日付を含むヘッダーとフッター
- 下書きや機密文書用のカスタム透かし
- ユーザーがブラウザで直接入力できるインタラクティブなフォームフィールド
- 文書認証のためのデジタル署名
- 長期アーカイブ要件に対応する PDF/A 準拠
- アクセス制限のための暗号化とパスワード保護
次の表は、ライブラリで使用できる主な変換方法と、それぞれの使用タイミングをまとめたものです。
| 方法 | 入力 | 最適な用途 |
|---|---|---|
| `RenderHtmlAsPdf` | HTML文字列 | テンプレート化された文書、請求書、レポート |
| `RenderUrlAsPdf` | URL | ウェブページのアーカイブ、ライブコンテンツのスナップショット |
| `RenderHtmlAsPdf` + Razor | レンダリングされたビューのHTML | 既存の MVC テンプレートを PDF として再利用する |
| `RenderHtmlFileAsPdf` | ローカルHTMLファイル | ディスクに保存された静的テンプレート |
コンテナ化されたデプロイメントでは、 IronPDF はリモートエンジンのサポートも提供しており、PDF 生成を専用のマイクロサービスとして実行できます。リソースが制限された環境に合わせた設定については、メモリ最適化ガイドをご覧ください。
機能の完全な概要については、 IronPDF の機能ページをご覧ください。
IronPDF はどのような書式設定と編集オプションをサポートしていますか?
IronPDF は基本的なレンダリングをはるかに超えています。 以下のオプションを使用して、すべてのドキュメントに構造とブランドを追加できます。
ページ レイアウト コントロールには、カスタム用紙サイズ、向きの設定、余白の構成が含まれます。 タイポグラフィ サポートは、CSS @font-face 宣言を介した完全な Web フォント レンダリングをカバーします。つまり、ドキュメントはブランド フォントと完全に一致します。 また、PDF ページ内に画像を埋め込み、サイズを変更することで、視覚的な忠実度を完全に制御できます。
ドキュメント操作では、 IronPDF を使用すると、既存の PDF を結合または分割したり、個々のページを追加または削除したり、プログラムでテキストや画像を抽出したりできます。 キャプチャ前 for JavaScript実行では、動的なグラフとデータの視覚化がサポートされます。これは、Chart.jsやD3.jsなどのクライアント側レンダリング ライブラリに依存するレポートを生成するときに役立ちます。
これらの機能により、別個のドキュメント処理レイヤーなしで、洗練された印刷可能なドキュメントをアプリケーションから直接作成できます。
ユーザーがアップロードした PDF を受け入れ、生成された PDF と一緒に表示する必要がある場合、 IronPDF は新しい PDF バイナリを作成するのと同じくらい簡単に既存の PDF バイナリを読み取ります。 PdfDocument.FromFile() を使用してファイルをロードし、同じ File() ヘルパーを介してその BinaryData を返します。
既存のドキュメントの編集、注釈付け、変更の詳細な手順については、 C# による PDF 編集チュートリアルを参照してください。
IronPDF は他のアプローチと比べてどうですか?
IronPDF のサーバー側アプローチに代わる最も一般的な 2 つの方法は、クライアント側の PDF ビューアー ライブラリ (Mozilla のオープン ソース ビューアーであるPDF.jsなど) を埋め込むことと、ユーザーを別のドキュメント管理システムにルーティングすることです。
PDF.js のようなクライアント側ビューアは、単純な表示の場合はうまく機能しますが、ビューア for JavaScriptバンドルの提供、外部 PDF の CORS の処理、およびブラウザの互換性の管理を自分で行う必要があります。 IronPDFを使用したサーバー側生成では、PDF パイプラインが完全に.NETスタック上に保持されるため、セキュリティ ポリシーが簡素化され、クロスオリジンの複雑さが回避されます。
専用のドキュメント管理システムは、ほとんどの Web アプリケーションでは必要のない運用上のオーバーヘッドを追加します。 すでにASP.NET Coreを実行しているチームにとって、コントローラーから直接 PDF を生成してストリーミングすることは、最も抵抗の少ない方法です。
次のステップは何ですか?
ASP.NET Core Web アプリケーションで PDF を表示するには、数行のコードだけが必要です。 ChromePdfRenderer を使用して PDF を生成し、Content-Disposition: inline を設定し、FileResult を返します。ブラウザの組み込みビューアが他のすべてを処理します。
実稼働環境での展開では、セットアップの準備として次の手順を検討してください。
- PDF生成時間とエラー率を追跡するためのカスタムログを設定します
- 頻繁に要求される PDF のキャッシュを実装して、Chromium の起動オーバーヘッドを削減します。
- IronPDF Engine Dockerイメージを使用して、Webレイヤーとは別にレンダリングをスケーリングします。
- 応答サイズを管理しやすいようにPDF 圧縮オプションを確認します
プロジェクトに PDF 表示機能を追加する準備はできましたか? 無料トライアルから始めて、上記の例を数分で実行してください。 展開の準備ができたら、チームの規模と使用状況に適したライセンス オプションを確認します。 関連する変換を調べるには、ハウツー ガイド ライブラリで、 IronPDF がDOCX から PDF 、画像から PDF 、およびその他の形式をどのように処理するかを参照してください。
よくある質問
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をレンダリングして表示することができます。


