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

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

ASP.NET Core で PDF ビューアーを実装するには、IronPDF を使用してHTMLURL 、またはRazor ビューから PDF を生成します。 インラインブラウザ表示用の適切なヘッダーを提供することで、外部プラグインやダウンロードなしでスムーズなドキュメント表示エクスペリエンスを実現します。

.NET で Web アプリケーションを構築する場合、多くの場合、 PDF ドキュメントをブラウザーに直接表示する必要があります。 請求書レポートインタラクティブな PDF フォームなど、ユーザーは Adobe Acrobat Reader やその他のサードパーティ製ブラウザー ツールを必要とせずに、スムーズにドキュメントを表示できることを期待しています。

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

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

最新のブラウザは組み込みのPDF ビューアとして機能します。 適切なMIMEタイプ(application/pdf)でPDFファイルを提供すると、ブラウザは自動的にインラインで表示します。つまり、PDFドキュメントやPDFファイルを表示するために外部プラグインは必要ありません。 重要なのは、高品質の PDF を生成し、正しい応答ヘッダーを構成することです。

IronPDF は、 HTMLRazor ビュー、または既存のドキュメントからピクセルパーフェクトなPDF ページを作成するのに優れた、頻繁に更新される.NET PDF ライブラリです。 Chrome ベースのレンダリングにより、正確なCSSJavaScript画像のサポートが保証され、デスクトップの PDF ビューアーと同様の表示エクスペリエンスがユーザーに提供されます。

最初に ASP.NET Core プロジェクトをセットアップする必要があるのはなぜですか?

まず、新しいASP.NET Core MVC アプリケーションを作成します。

dotnet new mvc -n PdfViewerApp
cd PdfViewerApp

これは、MVC サポートを備えた基本的な .NET アプリケーションを構築します。 その後、 PDF の処理レンダリングに必要なIronPDF NuGet パッケージをインストールできます。

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
$vbLabelText   $csharpLabel

インストールしたら、Program.cs でライセンス キーを設定します。 IronPDF のドキュメントには、設定に関する追加情報と例が記載されています。 デプロイメントの場合、ターゲット環境に適したインストール方法を使用していることを確認してください。

表示用の PDF を生成するにはどうすればよいでしょうか?

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

このアプローチにより、強制的なダウンロードが回避され、ユーザーは Web フォームまたは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");
    }
}
$vbLabelText   $csharpLabel

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

URL から PDF を生成する必要があるのはいつですか?

既存のWeb ページをPDF に変換します。

public IActionResult GenerateFromUrl(string url = "___PROTECTED_URL_133___")
{
    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 = "___PROTECTED_URL_133___")
{
    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");
}
$vbLabelText   $csharpLabel

ここでは、IronPDFがライブウェブページをPDFに変換します。 RenderUrlAsPdfメソッドはページを取得し、スタイルスクリプトを適用して、洗練された PDF を出力します。 Content-Dispositionヘッダーを inline に設定すると、ファイルはブラウザの PDF ビューアーで開きます。 JavaScript レンダリング オプションにより、動的コンテンツが適切に読み込まれるようになります。 これは、Web コンテンツをPDF ドキュメントとしてアーカイブまたは共有するのに最適です。

出力

! IronPDF for .NET ドキュメントを表示する PDF ビューア Web アプリケーション。上部に HTML から生成、URL から生成、印刷ボタンがあります。

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();
    }
}
$vbLabelText   $csharpLabel

このスニペットは、 Razor ビューをPDF に変換します。 ビューは最初にRenderViewToStringを使用して HTML 文字列にレンダリングされ、次にRenderHtmlAsPdfを使用して変換されます。 結果はブラウザで表示可能なファイルとして返されます。これにより、 Razorテンプレート(請求書など)をWeb表示とPDF生成の両方で再利用でき、一貫性を保つことができます。 MVC フレームワークプロジェクトの場合、わずかな調整を加えるだけで同様のアプローチが機能します。

ブラウザで 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");
}
$vbLabelText   $csharpLabel

この例はPDFをインラインで表示するように強制します。 シンプルなHTML文字列RenderHtmlAsPdfで変換し、 Content-Dispositionヘッダーをインラインに設定します。これにより、生成されたPDFファイルをブラウザで直接プレビューできます。 ヘッダーとフッター、または透かしを使用するとこれを改善できます。

出力

! PdfViewerApp のスクリーンショット。"Hello World"というテキストが表示された PDF ビューアと、ナビゲーション コントロール、HTML から生成、URL から生成、印刷のアクション ボタンが表示されています。

動的な 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}`;
}
$vbLabelText   $csharpLabel

このコードは、異なるPDFをビューワに動的にロードします。 コントローラがPDFのリストを提供し、オンデマンドで生成します。 JavaScriptのloadPdf関数は、<iframe>ページを再読み込みせずにソースを表示できるため、ドキュメント間の切り替えが簡単になります。 大きなドキュメントでパフォーマンスを向上させるには、非同期メソッドを実装することを検討してください。

高度な表示機能をどのように実装しますか?

追加機能で PDF ビューアを改良します:

public class AdvancedPdfController : Controller
{
    // Add zoom controls
    public IActionResult ViewWithZoom()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.ViewPortWidth = 1024;
        renderer.RenderingOptions.Zoom = 150; // 150% zoom
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        return File(pdf.BinaryData, "application/pdf");
    }

    // Enable text search
    public IActionResult SearchablePdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        var pdf = renderer.RenderHtmlAsPdf(htmlWithForms);
        // PDF text is searchable by default
        return File(pdf.BinaryData, "application/pdf");
    }
}
public class AdvancedPdfController : Controller
{
    // Add zoom controls
    public IActionResult ViewWithZoom()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.ViewPortWidth = 1024;
        renderer.RenderingOptions.Zoom = 150; // 150% zoom
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        return File(pdf.BinaryData, "application/pdf");
    }

    // Enable text search
    public IActionResult SearchablePdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        var pdf = renderer.RenderHtmlAsPdf(htmlWithForms);
        // PDF text is searchable by default
        return File(pdf.BinaryData, "application/pdf");
    }
}
$vbLabelText   $csharpLabel

これらの例は、ビューポートの制御フォームの作成を示しています。 レンダリング オプションを使用すると、PDF 生成を細かく制御できます。 検索機能とインタラクティブ ドキュメントのフォーム フィールドテキスト抽出を有効にします。

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

IronPDF は、 ASP.NETASP.NET Core 、およびBlazor Serverプロジェクト全体で動作します。 サーバー上でホストしたり、 Azureにデプロイしたり、 Dockerを使用してコンテナー化したりすることができます。 頻繁に更新され、アクティブなサポートを備えたライブラリなので、プロフェッショナルなドキュメント処理に信頼できます。

Azure にデプロイするにはどうすればよいでしょうか?

Azure App Serviceにデプロイする場合、IronPDF は最小限の構成でシームレスに動作します。 最適なパフォーマンスを得るには、App Service プランが少なくとも B1 レベルであることを確認してください。 IronPDF はChrome レンダリング エンジンの展開を自動的に処理します。 適切なAzureティアを選択するためのドキュメントについてはこちらをご参照ください。 サーバーレス PDF 生成にはAzure Functions の使用を検討してください。

Docker サポートはどうですか?

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

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

Linux 展開の場合、追加の依存関係が必要になる場合があります。 プラットフォーム固有の要件については、インストール ガイドを確認してください。 コンテナー サイズを縮小するには、 IronPDF Slim の使用を検討してください。

重要なパフォーマンスのヒントは何ですか?

*メモリストリームを使用して、コンテンツが頻繁に変更されない場合に生成された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");
$vbLabelText   $csharpLabel

ブラウザの互換性を確認し、 MIME タイプが正しいことを確認してください。 一部の古いブラウザでは追加の設定が必要な場合があります。

クロスオリジンの問題をどのように処理しますか?

異なるドメインからの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", "*");
$vbLabelText   $csharpLabel

安全な環境では、CORS ポリシーを適切に構成します。 保護されたドキュメントの認証要件を考慮してください。

大きな 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");
}
$vbLabelText   $csharpLabel

非常に大きなドキュメントのページ区切りを実装します。 圧縮を使用して帯域幅を削減します。 パフォーマンスを向上させるには、非同期レンダリングを検討してください。

次のステップは何ですか?

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

動作するソースコード付きの完全なチュートリアルをお探しですか? 無料のサンプル プロジェクトをダウンロードして、IronPDF を使用して、最新の安全で柔軟な ASP.NET 用PDF ビューアーを統合する方法をご確認ください。 詳細なドキュメントとコード例については、 API リファレンスを確認してください。

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

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