フッターコンテンツにスキップ
IRONPDFの使用

IronPDF for .NET Webアプリケーションで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はHTML、CSS、JavaScriptからピクセルのように完璧なPDFページを作成するために、Chromeベースのレンダリングエンジンを使用し、サーバー側で力仕事を処理します。 その結果は? ユーザーは、テキスト選択、検索、印刷、ダウンロードなどの機能を備えたネイティブのドキュメントビューアを体験できます。 コンテンツを簡単に埋め込んで表示することができます。

このアプローチは、ASP.NET Core MVC、Razorビュー、レガシーWebフォルダのプロジェクトなど、すべての.NETアプリケーションでシームレスに機能します。

PDFビューアコントロールのインストールと設定方法

Visual StudioでIronPDFを使い始めるにはいくつかのステップを踏むだけです。 .NET Coreプロジェクトを開き、NuGetパッケージをインストールします:

Install-Package IronPdf

次に、Program.csにライセンスキー設定を追加します:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

.NETアプリケーションにIronPDFを完全に統合するために必要な設定は以上です。 AzureデプロイやDockerコンテナのような高度なシナリオのための追加設定オプションについては、IronPDFのドキュメントを参照してください。 無料トライアルで開始し、コミットする前にすべての機能を調べることができます。

HTMLからPDFドキュメントを生成して表示するには?

.NET Core WebアプリケーションでPDFビューアを作成する最も簡単な方法は、HTML文字列を直接変換することです。 以下は、完全なコントローラの例です:

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // 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");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // 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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

出力されたPDFはブラウザで表示されます。

How to Create a PDF Viewer in ASP .NET Web Application with IronPDF:画像1 - ASP .NET WebアプリケーションでIronPDFを使ってPDFビューアを作成する方法に関連する画像3件中1件目

ChromePdfRendererクラスはChromiumを使用して正確なレンダリングを行い、CSS、JavaScript、画像が意図したとおりに表示されるようにします。 Content-Dispositionをインラインに設定すると、PDFをダウンロードするのではなく、表示するようにブラウザに指示します。

これにより、ユーザーがWeb UI内で直接ドキュメントにアクセスできる、シームレスな閲覧体験が実現します。 複雑なレイアウトのドキュメントでは、多くの場合、HTML内で、またはRenderingOptionsを使用して、幅や高さなどのレンダリング設定を指定することができます。

その他のHTML変換オプションについては、HTML文字列からPDFへのガイドをご覧ください。

URLとRazorビューからPDFファイルをレンダリングするには?

IronPdfはウェブページを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;
    var pdf = renderer.RenderUrlAsPdf(url);
    Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf");
    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;
    var pdf = renderer.RenderUrlAsPdf(url);
    Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf");
    return File(pdf.BinaryData, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

生成された PDF を表示するブラウザー ドキュメント ビューアー

How to Create a PDF Viewer in ASP .NET Web Application with IronPDF:画像2 - ASP .NET WebアプリケーションでIronPDFを使ってPDFビューアを作成する方法に関連する画像3件中2件目

RazorのビューをPDFに変換するには、まずビューをHTMLとしてレンダリングするヘルパーメソッドが必要です。この方法により、既存のテンプレートをウェブ表示と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();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    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();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    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();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

出力されたPDFを見る

How to Create a PDF Viewer in ASP .NET Web Application with IronPDF:画像3 - PDFをレンダリングしてブラウザで表示する

このヘルパーメソッドにより、RazorビューのコンテンツをHTML文字列にレンダリングし、IronPDFが変換できるようになります。 Razor to PDF チュートリアルでは、このワークフローを詳しく説明しています。

ストリーミングで大きな PDF ファイルを扱うには?

大きなPDF文書を処理する場合、ストリーミングはパフォーマンスを向上させ、メモリ使用量を削減します。 MemoryStreamを使用すると、効率的にファイルを提供できます:

public IActionResult StreamLargePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<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();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Large Document</h1><p>Content here...</p>");
    var stream = new MemoryStream(pdf.BinaryData);
    return new FileStreamResult(stream, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

従来の ASP.NET Web Forms プロジェクトでは、イベントハンドラを使用して同様の機能を実装できます:

protected void btnGeneratePdf_Click(object sender, EventArgs e)
{
    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)
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>");
    Response.ContentType = "application/pdf";
    Response.BinaryWrite(pdf.BinaryData);
    Response.End();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この PDF ビューア コントロールはどのような機能をサポートしていますか?

ブラウザのネイティブPDFビューアを活用することで、ユーザーは、コンテンツをコピーするためのテキスト選択、特定のデータを検索するための検索機能、物理的なコピーのための印刷オプション、オフラインアクセスのためのダウンロード機能など、豊富な機能を自動的に得ることができます。

また、ユーザーが既存のドキュメントをアップロードして表示、編集、マージする必要があるシナリオにも対応します。 IronPdfのサーバーサイド処理はJavaScriptの実行、CSSのレンダリング、ユーザーが入力できるインタラクティブな要素を含むフォームを処理します。

このフレームワークは、タグヘルパーの統合、カスタムページサイズ、ヘッダーとフッター、透かし、編集機能までサポートしています。 完全な機能概要については、IronPdfの機能ページをご覧ください。

結論

ASP.NETウェブアプリケーションでPDFビューアを作成するのはIronPDFを使えば非常に簡単です。 強力なレンダリングエンジンとブラウザのデフォルトのPDFビューアを組み合わせることで、WebアプリケーションでPDFファイルを表示、処理、処理するためのプロフェッショナルなソリューションが得られます。 HTML、URL、Razorビューのいずれを変換する場合でも、実装には最小限のコードしか必要とせず、最大限の機能を提供します。

プロジェクトにPDFビューを実装する準備はできていますか? IronPDFの無料トライアルから始めて、あなたの.NET Coreウェブアプリケーションがドキュメントをどのように扱うかを変えてください。 本番環境への導入については、チームのニーズに合ったライセンスオプションを確認してください。 IronPDFの変換例をもっと見たいですか? IronPDF がDOCXからPDFへの変換や画像からPDFへの変換などをどのように行っているかは、役に立つハウツーガイドをご覧ください。

今IronPDFを始めましょう。
green arrow pointer

よくある質問

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ボットを作成したりして、技術に対する愛情と創造性を組み合わせています。