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

ASP.NET CoreでPDFビューアーを作成する方法

Webアプリケーションを.NETで構築する際、PDFドキュメントをブラウザで直接表示することがよく求められます。 請求書、レポート、またはインタラクティブなPDFフォームであれ、最終ユーザーはAdobe Acrobat Readerや他のサードパーティのブラウザツールを必要とせずにシームレスなドキュメントビューア体験を期待します。

このチュートリアルでは、IronPDFを使用してASP.NET用のPDFビューアおよび.NET Coreの実装方法を紹介します。 この堅牢なPDFビューアコントロールにより、開発者は.NETアプリケーション内でPDFファイルを作成、レンダリング、および表示することができ、ビジネスに不可欠なドキュメントを処理するためのプロフェッショナルなソリューションを提供します。

ASP.NET CoreでのPDF表示がどのように機能するか?

現代のブラウザは組み込みのPDFビューアとして機能します。 適切なMIMEタイプ(application/pdf)でPDFファイルを提供すると、ブラウザは自動的にそれをインラインで表示します。これにより、PDFドキュメントを表示するために外部プラグインが必要なくなります。 肝心なのは、高品質のPDFを生成し、適切なレスポンスヘッダーを設定することです。

IronPDFは、HTML、Razorビュー、または既存のドキュメントからピクセルパーフェクトなPDFページを作成することに優れた、頻繁に更新される.NET PDFライブラリです。 Chromiumベースのレンダリングにより、正確なCSS、JavaScript、および画像サポートが保証され、最終ユーザーにデスクトップPDFビューアに匹敵する閲覧体験をもたらします。

あなたのASP.NET Coreプロジェクトの設定

新しいASP.NET Core MVCアプリケーションを作成することから始めましょう:

dotnet new mvc -n PdfViewerApp
cd PdfViewerApp

これにより、MVCサポートを備えた基本的な.NETアプリケーションがスキャフォールドされます。 その後、IronPDFのNuGetパッケージをインストールすることでPDFの処理とレンダリングを行うことができます。

IronPDFのインストールと設定方法は?

IronPDFのインストールは数ステップで完了します。 Visual Studioでパッケージマネージャコンソールを開き、次を実行します。

Install-Package IronPdf

または.NET CLIを使用して:

dotnet add package IronPdf

Program.csまたはStartup.csでIronPDFを設定します。

// Add this at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Use your trial or commercial key
// Add this at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Use your trial or commercial key
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

インストール後、Program.csでライセンスキーを設定します。 IronPDFのドキュメントには、設定に関する追加情報と例が提供されています。

PDF表示用のPDFを生成する方法

IronPDFを使用すると、生HTML、ウェブページ、またはRazorビューからPDFファイルを作成できます。 生成されたPDFドキュメントは、わずか数行のC#ソースコードでインラインで表示できます。 例えば、ChromePdfRendererを使用して、HTMLをレンダリングし、それをブラウザにPDFファイルとして返すことで、ASP.NET PDFビューアコントロール内で表示できます。

このアプローチはダウンロードを強制せず、ユーザーがウェブフォームやBlazorプロジェクト内でPDFを直接表示、印刷、検索、保存することを可能にします。

HTML文字列からPDFを作成する

HTMLを直接PDFに変換する最も簡単な方法:

using IronPdf;
public class PdfController : Controller
{
    public IActionResult GenerateFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Create PDF from HTML
        var 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 viewing
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
public class PdfController : Controller
{
    public IActionResult GenerateFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Create PDF from HTML
        var 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 viewing
        return File(pdf.BinaryData, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この例はHTML文字列から直接PDFを生成する方法を示しています。 ChromePdfRendererが作成され、正確なレンダリングのためにChromiumを使用します。 HTML(インラインCSS付き)はRenderHtmlAsPdfに渡され、PdfDocumentが生成されます。 application/pdf MIMEタイプでファイルを返すことで、ブラウザはそれをインラインで表示します。これは、ASP.NET Coreでレポートや請求書を動的に生成するのに役立ちます。

URLからPDFを生成する

既存のウェブページをPDFに変換する:

public IActionResult GenerateFromUrl(string url = "https://ironpdf.com")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.WaitFor.JavaScript(3000);
    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 GenerateFromUrl(string url = "https://ironpdf.com")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.WaitFor.JavaScript(3000);
    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

ここでは、IronPDFがライブウェブページをPDFに変換します。 RenderUrlAsPdfメソッドがページを取得し、スタイルとスクリプトを適用して洗練されたPDFを生成します。 Content-Dispositionヘッダをインラインに設定すると、ファイルがブラウザのPDFビューアで開きます。 これは、ウェブコンテンツをPDFドキュメントとしてアーカイブまたは共有するのに理想的です。

出力

ASP.NET CoreでPDFビューアを作成する方法:図2 - URLをPDFとして出力し、PDFビューアで表示

RazorビューをPDFに変換する

Razorビューを動的にPDFに変換する:

public async Task<IActionResult> ViewToPdf()
{
    // Render the view to HTML string first
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
        var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);
        return sw.ToString();
    }
}
public async Task<IActionResult> ViewToPdf()
{
    // Render the view to HTML string first
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
        var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);
        return sw.ToString();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このスニペットはRazorビューをPDFに変換します。 ビューはまずRenderViewToStringを使用してHTML文字列にレンダリングされ、次にRenderHtmlAsPdfを使用して変換されます。 結果はブラウザ表示可能なファイルとして返されます。これにより、Razorテンプレート(請求書など)をウェブ表示とPDF生成の両方に再利用でき、一貫性が確保されます。

ブラウザでPDFを表示する方法

PDFをインライン(ダウンロードではなく)で表示するための鍵は、適切なレスポンスヘッダを設定することにあります。

基本インライン表示

public IActionResult ViewPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
    Response.Headers.Add("Content-Disposition", "inline");
    return File(pdf.BinaryData, "application/pdf");
}
public IActionResult ViewPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
    Response.Headers.Add("Content-Disposition", "inline");
    return File(pdf.BinaryData, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

この例はPDFをインラインで表示するように強制します。 単純なHTML文字列がRenderHtmlAsPdfで変換され、Content-Dispositionヘッダがインラインに設定されます。生成されたPDFファイルをブラウザで直接プレビューするための迅速な方法です。

出力

ASP.NET CoreでPDFビューアを作成する方法:図3 - シンプルなインラインPDFビューア例

動的PDFロード

ページを更新せずに異なるPDFをロードする:

[HttpGet]
public IActionResult GetPdfList()
{
    var pdfs = new List<object>
    {
        new { id = 1, name = "Report 1" },
        new { id = 2, name = "Report 2" }
    };
    return Json(pdfs);
}
[HttpGet]
public IActionResult GetPdf(int id)
{
    var renderer = new ChromePdfRenderer();
    var html = $"<h1>Report {id}</h1><p>Content for report {id}</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    return File(pdf.BinaryData, "application/pdf");
}
// Load PDF dynamically
function loadPdf(pdfId) {
    const frame = document.getElementById('pdfFrame');
    frame.src = `/Pdf/GetPdf?id=${pdfId}`;
}
[HttpGet]
public IActionResult GetPdfList()
{
    var pdfs = new List<object>
    {
        new { id = 1, name = "Report 1" },
        new { id = 2, name = "Report 2" }
    };
    return Json(pdfs);
}
[HttpGet]
public IActionResult GetPdf(int id)
{
    var renderer = new ChromePdfRenderer();
    var html = $"<h1>Report {id}</h1><p>Content for report {id}</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    return File(pdf.BinaryData, "application/pdf");
}
// Load PDF dynamically
function loadPdf(pdfId) {
    const frame = document.getElementById('pdfFrame');
    frame.src = `/Pdf/GetPdf?id=${pdfId}`;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このコードは、異なるPDFをビューワに動的にロードします。 コントローラがPDFのリストを提供し、オンデマンドで生成します。 JavaScriptのloadPdf機能はページを再読み込みせずに<iframe>のソースを更新し、ドキュメント間の迅速な切り替えを可能にします。

導入に関する考慮事項は?

IronPDFはASP.NET、ASP.NET Core、Blazorサーバプロジェクト全体で動作します。 サーバにホストしたり、Azureにデプロイしたり、Dockerでコンテナ化することができます。 頻繁に更新されるライブラリで、アクティブなサポートがあるため、企業レベルのドキュメント処理に信頼を置けます。

Azure デプロイ

Azure App Serviceにデプロイする際は、IronPDFは最小限の設定でスムーズに動作します。 パフォーマンスを最適化するために、App Serviceプランが少なくともB1ティアであることを確認してください。 IronPDFはChromeレンダリングエンジンのデプロイを自動で処理します。 適切なAzureティアを選択するためのドキュメントについてはこちらをご参照ください。

Dockerサポート

コンテナ化されたデプロイメントのために、IronPDFはDockerサポートを提供します。 これをDockerfileに追加します:

# Install IronPDF dependencies
RUN apt-get update && apt-get install -y libgdiplus

パフォーマンスのヒント

  • 変更頻度が低いコンテンツのPDFをキャッシュする
  • スケーラビリティを向上させるために非同期メソッドを使用する
  • 複雑なPDF生成には適切なタイムアウトを設定する

一般的な問題と解決策

PDFがインラインで表示されない

PDFが表示されずにダウンロードされる場合:

// Ensure Content-Disposition is set correctly
Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
// Ensure Content-Disposition is set correctly
Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

クロスオリジンの問題

異なるドメインからのPDFをロードする際:

// Add CORS headers if needed
Response.Headers.Add("Access-Control-Allow-Origin", "*");
// Add CORS headers if needed
Response.Headers.Add("Access-Control-Allow-Origin", "*");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

大きなPDFファイル

大きなドキュメントにはストリーミングを検討してください:

public async Task<IActionResult> StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent);
    var stream = new MemoryStream(pdf.BinaryData);
    return new FileStreamResult(stream, "application/pdf");
}
public async Task<IActionResult> StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent);
    var stream = new MemoryStream(pdf.BinaryData);
    return new FileStreamResult(stream, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

結論

ASP.NET CoreでのPDFビューアの作成は複雑である必要はありません。 IronPDFのレンダリングエンジンを使用して、ブラウザのデフォルトのPDFビューアと組み合わせることで、オンラインでPDFファイルを表示、編集、処理するためのプロフェッショナルでユーザーフレンドリーなソリューションが得られます。請求書をレンダリングする必要があったり、動的なレポートを統合したり、モバイルアプリ用のドキュメントビューワを構築する必要がある場合でも、このアプローチは機能、スケーラビリティ、パフォーマンスの適切なバランスを提供します。

動作するソースコード付きの完全なチュートリアルをお探しですか? 無料のサンプルプロジェクトをダウンロードして、IronPDFがASP.NET用のモダンで安全で柔軟なPDFビューアを統合するのにどのように役立つかをご覧ください。

ASP.NET CoreアプリケーションでPDF表示を実装する準備はできましたか? IronPDFの無料トライアルで今日ウェブアプリケーションのドキュメント処理能力を変革し始めましょう。

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

よくある質問

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)

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。