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

ASP.NET Core MVCでPDFビューアを構築する|チュートリアル

IronPDF の Chrome ベースのレンダリング エンジンを使用してASP.NET Core MVC PDF ビューアーを作成し、ブラウザーで PDF ファイルをインラインで表示したり、HTML コンテンツから動的な PDF を生成したり、ユーザーがドキュメントを表示またはダウンロードするかどうかを制御したりします。これらはすべて外部プラグインや依存関係なしで実行できます。

最近のブラウザにはPDFビューアが内蔵されており、ウェブアプリケーションが正しいMIMEタイプでPDFファイルを提供すると自動的に起動します。 これにより、サードパーティのツールやプラグインが不要になり、ユーザーはブラウザで直接PDF文書を表示できるようになります。 Chrome ベースのレンダリング エンジンを備えた.NET PDF ライブラリであるIronPDF を使用すると、 ASP.NET Core MVC アプリケーション内で PDF ファイルを簡単に生成、レンダリング、表示できます。

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

ASP.NET Core MVC プロジェクトにIronPDFをインストールするにはどうすればよいでしょうか?

ASP.NET Core MVC で PDF ビューアーを構築する前に、プロジェクトにIronPDFを追加する必要があります。 最も速いルートは、Visual Studio のNuGetパッケージ マネージャーを使用するか、 .NET CLI またはパッケージ マネージャー コンソールを使用してコマンド ラインから行うことです。

Install-Package IronPdf
dotnet add package IronPdf
Install-Package IronPdf
dotnet add package IronPdf
SHELL

パッケージのインストールが完了したら、コントローラーファイルに IronPdf 名前空間を追加すれば、PDF ドキュメントの生成と配信を開始できます。 IronPDF は.NET 8 と.NET 10 をターゲットにしているため、追加の構成なしで最新のASP.NET Coreリリースで動作します。

オフライン インストールまたは特定のバージョンの固定が必要なプロジェクトの場合は、 NuGetパッケージを直接ダウンロードし、ローカル フィードとして追加することもできます。 IronPDF のライセンス ページには、本番稼働前に必要な場合の試用版および製品版ライセンスのオプションが記載されています。

最近のブラウザーはPDFファイルをどのように表示しますか

Chrome、Firefox、Edge、Safariなどの最新ブラウザには、ネイティブのPDFビューア機能が含まれています。 ASP.NET Coreアプリケーションが application/pdf コンテンツタイプのファイルを返すと、ブラウザは Adob​​e Acrobat や外部プラグインを必要とせずに PDF ドキュメントをインラインでレンダリングします。 この組み込み PDF ビューアは、テキストの選択、印刷、ズーム コントロール、ブックマーク、ページ ナビゲーションをサポートしており、ユーザーがすでに理解しているドキュメント表示エクスペリエンスを実現します。

既存のファイルを安全に提供するためには、開発と本番で変更される可能性のあるディレクトリパスに依存するのではなく、ホスティング環境を使用してファイルを見つけることがベストプラクティスです。 ファイル ストリームを使用すると、大きなドキュメントのバイト配列全体を読み込むよりもメモリ効率が高くなります。

using Microsoft.AspNetCore.Mvc;

public class DocumentController : Controller
{
    public IActionResult ViewPdf()
    {
        // Path to an existing PDF file in the wwwroot folder
        string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf");
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        // Return file for inline browser display
        return File(fileBytes, "application/pdf");
    }
}
using Microsoft.AspNetCore.Mvc;

public class DocumentController : Controller
{
    public IActionResult ViewPdf()
    {
        // Path to an existing PDF file in the wwwroot folder
        string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf");
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        // Return file for inline browser display
        return File(fileBytes, "application/pdf");
    }
}
Imports Microsoft.AspNetCore.Mvc

Public Class DocumentController
    Inherits Controller

    Public Function ViewPdf() As IActionResult
        ' Path to an existing PDF file in the wwwroot folder
        Dim path As String = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf")
        Dim fileBytes As Byte() = System.IO.File.ReadAllBytes(path)
        ' Return file for inline browser display
        Return File(fileBytes, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

ブラウザで表示される PDF はどのように見えるでしょうか?

<img src="/static-assets/pdf/blog/asp-net-core-mvc-viewer/asp-net-core-mvc-viewer-1.webp" alt=""PDFとは何か?"に関するPDFドキュメントが、localhost:7162/Pdf/ViewPdfのWebブラウザに表示され、Zoomコントロールとナビゲーションオプションを備えたPDFビューアインターフェースでフォーマットされたテキストコンテンツが表示されます">

上のコードは、サーバーから既存のPDFファイルを読み込み、ブラウザに返します。 File() メソッドは、バイト配列とコンテンツタイプを受け取り、ブラウザのドキュメントビューアにコンテンツをインラインでレンダリングするように指示します。この方法は、デスクトップとモバイルデバイスの両方で、すべての最新ブラウザで動作し、すべてのユーザーに一貫したエクスペリエンスを提供します。

より高度なシナリオでは、メモリまたはAzure Blob Storageから PDF を読み込むことで、スケーラビリティを向上させ、サーバーのストレージ要件を削減することができます。 ASP.NET Coreで静的ファイルを提供する方法に関する Microsoft のドキュメントには、運用環境でのファイル処理のベスト プラクティスが記載されています。

ASP.NET Coreで PDF ドキュメントを動的に生成するにはどうすればよいですか?

静的な PDF ファイルは便利ですが、多くの Web アプリケーションでは、現在のユーザーやリクエストに合わせて動的に生成されるドキュメントが必要です。IronPDF の ChromePdfRenderer クラスは、内部で実際の Chromium ブラウザ エンジンを使用して、HTML コンテンツをプロフェッショナルな PDF ファイルに変換します。

特定のテーマの CSSグラフ for JavaScriptなどの外部アセットを HTML 文字列に直接含めることができます。 レンダリング エンジンは、CSS3、 JavaScript ES6+、 Web フォントなどの最新の Web 標準をサポートしているため、生成された PDF はブラウザーが同じ HTML ページをレンダリングした場合とまったく同じように表示されます。

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class ReportController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with CSS styling
        string html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class ReportController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with CSS styling
        string html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class ReportController
    Inherits Controller

    Public Function GenerateReport() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        ' HTML content with CSS styling
        Dim html As String = "
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>"

        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

PDF 生成後、HTML コンテンツはどのように表示されますか?

 IronPDFを介してカスタム CSS スタイルを適用した HTML から PDF への変換を示す、書式設定されたヘッダー テキストと生成日を含む月次売上レポートを表示する PDF ビューア

この例では、 IronPDF がHTML 文字列を PDF ドキュメントに変換する方法を示します。 ChromePdfRenderer は Chromium ベースのエンジンを使用しており、正確な CSS レンダリングとJavaScriptサポートを保証します。 生成された PDF では HTML で定義されたすべてのスタイルが維持されるため、一貫した書式設定が必要なレポート請求書、その他のドキュメントの作成に最適です。

HTML から PDF への変換に関する追加のコード例については、IronPDF のドキュメントを参照してください。 CSHTML RazorビューURL 、さらにはMarkdown コンテンツから PDF を生成することもできます。

インライン表示とファイルのダウンロードをどのように制御しますか?

ユーザーは、PDFファイルをブラウザで表示するのではなく、ダウンロードする必要があります。 ブラウザが応答を処理する方法は、Content-Disposition ヘッダーに依存します。 この違いを理解することは、アプリケーションで適切なエクスペリエンスを提供するために重要です。

File() メソッドで filename パラメーターを省略すると、 ASP.NET Core はContent-Disposition ヘッダーを設定しないため、ブラウザはデフォルトの動作 (通常はインライン表示) を使用します。 ファイル名を 3 番目のパラメーターとして指定すると、 ASP.NET Core は自動的に Content-Disposition: attachment を追加し、ユーザーにファイルを保存するように促します。

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayInline()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 25;
        renderer.RenderingOptions.MarginBottom = 25;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Display PDF inline in browser -- no filename = inline
        return File(pdf.BinaryData, "application/pdf");
    }

    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
        renderer.RenderingOptions.EnableJavaScript = true;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Prompt download with specified filename
        return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayInline()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 25;
        renderer.RenderingOptions.MarginBottom = 25;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Display PDF inline in browser -- no filename = inline
        return File(pdf.BinaryData, "application/pdf");
    }

    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
        renderer.RenderingOptions.EnableJavaScript = true;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Prompt download with specified filename
        return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class PdfController
    Inherits Controller

    Public Function DisplayInline() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
        renderer.RenderingOptions.MarginTop = 25
        renderer.RenderingOptions.MarginBottom = 25

        Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
        ' Display PDF inline in browser -- no filename = inline
        Return File(pdf.BinaryData, "application/pdf")
    End Function

    Public Function DownloadPdf() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter
        renderer.RenderingOptions.EnableJavaScript = True

        Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
        ' Prompt download with specified filename
        Return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

ダウンロードの代わりにインライン表示を使用する必要があるのはどのような場合ですか?

WikipediaのメインページをPDF形式に変換し、Zoom、ページナビゲーション、印刷オプションなどのPDFビューアコントロールを備えたブラウザウィンドウにインラインで表示したスクリーンショット

2 つのコントローラーアクションの違いは、File() の 3 番目のパラメーターにあります。 この柔軟性により、アプリケーションはユーザーのニーズやビジネス要件に基づいて両方のシナリオをサポートできます。 制御を強化するために、レンダリング前にカスタム HTTP ヘッダーを設定したり、用紙のサイズ向きの設定を構成したりすることもできます。

一部のアプリケーションでは、PDF をインラインで表示するプレビュー エンドポイントと、ファイルの保存をトリガーする別のダウンロード エンドポイントの両方のアプローチを組み合わせています。 このパターンにより、ユーザーはドキュメントをダウンロードする前にその内容を確認することができます。

Razor Pages を PDF 生成とどのように統合しますか?

ASP.NET Core MVC のRazor Pages は、 .NET PDF ビューアーを実装するための別のアプローチを提供します。 ページ モデルは、標準の MVC コントローラーで使用できるものと同じIronPDF機能を使用して PDF ファイルを生成し、返すことができます。 このパターンは、PDF 生成ロジックを、それをトリガーするページと同じ場所に配置しておくため、すでにRazor Pages を使用しているアプリケーションに適しています。

Razor Page の OnGet ハンドラーは、コントローラー アクションのように動作します。リクエストを受け取り、処理を実行し、結果を返します。 ページ モデルから FileResult を返すことはASP.NET Coreでサポートされており、コントローラーから File() を返すのと同じように機能します。

using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class InvoiceModel : PageModel
{
    public IActionResult OnGet(int id)
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.CenterText = "Invoice Document";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;

        string html = $@"
            <html>
            <head>
                <style>
                    body {{ font-family: 'Segoe UI', Arial, sans-serif; padding: 40px; }}
                    h1 {{ color: #1a5490; border-bottom: 2px solid #1a5490; padding-bottom: 10px; }}
                    .invoice-details {{ margin: 20px 0; }}
                    table {{ width: 100%; border-collapse: collapse; }}
                    th, td {{ padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }}
                </style>
            </head>
            <body>
                <h1>Invoice #{id}</h1>
                <div class='invoice-details'>
                    <p><strong>Date:</strong> {DateTime.Now:yyyy-MM-dd}</p>
                    <p><strong>Due Date:</strong> {DateTime.Now.AddDays(30):yyyy-MM-dd}</p>
                </div>
                <table>
                    <tr><th>Description</th><th>Amount</th></tr>
                    <tr><td>Professional Services</td><td>$1,500.00</td></tr>
                </table>
                <p style='margin-top: 40px;'>Thank you for your business!</p>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class InvoiceModel : PageModel
{
    public IActionResult OnGet(int id)
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.CenterText = "Invoice Document";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;

        string html = $@"
            <html>
            <head>
                <style>
                    body {{ font-family: 'Segoe UI', Arial, sans-serif; padding: 40px; }}
                    h1 {{ color: #1a5490; border-bottom: 2px solid #1a5490; padding-bottom: 10px; }}
                    .invoice-details {{ margin: 20px 0; }}
                    table {{ width: 100%; border-collapse: collapse; }}
                    th, td {{ padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }}
                </style>
            </head>
            <body>
                <h1>Invoice #{id}</h1>
                <div class='invoice-details'>
                    <p><strong>Date:</strong> {DateTime.Now:yyyy-MM-dd}</p>
                    <p><strong>Due Date:</strong> {DateTime.Now.AddDays(30):yyyy-MM-dd}</p>
                </div>
                <table>
                    <tr><th>Description</th><th>Amount</th></tr>
                    <tr><td>Professional Services</td><td>$1,500.00</td></tr>
                </table>
                <p style='margin-top: 40px;'>Thank you for your business!</p>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages

Public Class InvoiceModel
    Inherits PageModel

    Public Function OnGet(id As Integer) As IActionResult
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4

        ' Add header and footer
        renderer.RenderingOptions.TextHeader.CenterText = "Invoice Document"
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}"
        renderer.RenderingOptions.TextFooter.FontSize = 10

        Dim html As String = $"
            <html>
            <head>
                <style>
                    body {{ font-family: 'Segoe UI', Arial, sans-serif; padding: 40px; }}
                    h1 {{ color: #1a5490; border-bottom: 2px solid #1a5490; padding-bottom: 10px; }}
                    .invoice-details {{ margin: 20px 0; }}
                    table {{ width: 100%; border-collapse: collapse; }}
                    th, td {{ padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }}
                </style>
            </head>
            <body>
                <h1>Invoice #{id}</h1>
                <div class='invoice-details'>
                    <p><strong>Date:</strong> {DateTime.Now:yyyy-MM-dd}</p>
                    <p><strong>Due Date:</strong> {DateTime.Now.AddDays(30):yyyy-MM-dd}</p>
                </div>
                <table>
                    <tr><th>Description</th><th>Amount</th></tr>
                    <tr><td>Professional Services</td><td>$1,500.00</td></tr>
                </table>
                <p style='margin-top: 40px;'>Thank you for your business!</p>
            </body>
            </html>"

        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

PDF カスタマイズにはどのようなレンダリング オプションが利用できますか?

PDF ビューアが、スタイル付きヘッダー、支払期日情報、お礼メッセージを含むProfessionalフォーマットで請求書 #20 を表示しています。ダークテーマのブラウザ インターフェースで表示されます。

このRazor Pages の例では、OnGet ハンドラーが URL パラメータから PDF を生成する方法を示します。 RenderingOptions プロパティを使用すると、余白、ページの向き、その他のレイアウト設定を細かく制御できます。 ヘッダーとフッターを追加したり、ページ番号を設定したり、カスタム用紙サイズを設定したりすることもできます。

RenderingOptions を通じて利用できる高度な機能には、透かしPDF 圧縮、およびデジタル署名が含まれます。 利用可能なすべてのオプションの詳細については、 IronPDFレンダリング オプション リファレンスを参照してください。

PDF のセキュリティとアクセス制御をどのように処理しますか?

運用アプリケーションでは、多くの場合、PDF ドキュメントを表示または変更できるユーザーを制限する必要があります。 IronPDF にはPDF パスワードと権限のサポートが組み込まれており、ドキュメントを暗号化したり、ドキュメントを開くときにパスワードを要求したり、印刷やコピーを制限したりできます。

コントローラーからオブジェクトを返す前に、任意のオブジェクトにセキュリティ設定を適用できます。 このアプローチは、PDF が HTML から生成された場合、ディスクから読み込まれた場合、またはデータベースから取得された場合にも機能します。

IronPDFで利用できる一般的な PDF セキュリティ オプション
セキュリティ機能 IronPDFプロパティ 使用事例
所有者パスワード `OwnerPassword` 不正な権限変更を防止する
ユーザーパスワード `UserPassword` 文書を開くにはパスワードが必要です
印刷を無効にする `AllowUserPrinting` 受信者がファイルを印刷できないようにする
コピーを無効にする `AllowUserCopyPasteContent` PDFからのブロックテキスト抽出
デジタル署名 `PdfSignature` 文書の真正性を確認する

契約書、財務諸表、医療記録などの機密文書の場合、ユーザーパスワードと制限された権限を組み合わせることで、受信者がファイルに対して実行できる操作を正確に制御できます。PDF /A準拠モードは、数十年にわたって文書の整合性を維持しなければならない長期アーカイブのシナリオにおいて検討する価値のあるもう1つのオプションです。

PDF 生成のパフォーマンスをどのように最適化しますか?

PDF の生成には CPU とメモリの作業が伴うため、トラフィック量の多いアプリケーションではパフォーマンスが重要になります。 IronPDFの非同期レンダリングAPIを使用すると、リクエストパイプラインをブロックすることなく、PDF作成をバックグラウンドスレッドにオフロードできます。これは、1回のリクエストで複数のPDFを生成したり、バッチジョブを処理したりする場合などに特に役立ちます。

Linux または Docker コンテナーでの運用展開の場合、 IronPDF はWindows 固有の依存関係を必要とせずにクロスプラットフォーム実行をサポートします。 IronPDFのLinuxインストールガイドDocker構成リファレンスには、セットアップ手順が記載されています。 Mozilla PDF.js プロジェクトとネイティブ ブラウザー ビューアーはどちらもIronPDFが生成するすべての PDF と互換性があるため、表示面でも柔軟性が得られます。

生産におけるスループットを向上させるいくつかの方法:

  • レンダラーの初期化には多少のオーバーヘッドがあるため、リクエストごとに新しいインスタンスを作成するのではなく、可能な限り ChromePdfRenderer インスタンスを再利用してください。
  • Chromium エンジンがレンダリングしている間、スレッドを解放するために、RenderHtmlAsPdfAsync などの非同期メソッドを使用します。
  • 同じドキュメントが繰り返し要求された場合、 IMemoryCacheまたは分散キャッシュを使用して生成された PDF をキャッシュします。
  • 非常に大きなドキュメントの場合は、バイト配列全体をメモリにバッファリングするのではなく、出力をストリーミングすることを検討してください。

非同期レンダリングは実際にはどのように機能しますか?

非同期 API は同期バージョンを模倣していますが、Task<PdfDocument> を返します。 async コントローラーアクション内で結果を待機し、レンダリング処理中にスレッドプールを他の受信リクエストの処理に使用できるようにします。 高負荷のシナリオで同期レンダリングから非同期レンダリングに切り替えると、通常、スレッドの競合が軽減され、同時負荷時の全体的な応答時間が改善されます。

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

ASP.NET Core MVC で PDF ビューアーを構築すると、ブラウザーネイティブの表示機能と IronPDF の生成機能が組み合わされます。 最新のブラウザに組み込まれている PDF ビューアは、 ASP.NETコントローラが正しい MIME タイプのファイルを返すと、表示、印刷、ナビゲーションを自動的に処理します。 IronPDF は生成側を処理し、HTML、URL、または既存のファイルを、CSS、 JavaScript、ヘッダー、フッター、およびセキュリティ設定を完全にサポートした適切にフォーマットされた PDF ドキュメントに変換します。

このガイドで説明する主な機能:

  • File() メソッドと application/pdf MIME タイプを使用して、既存の PDF ファイルをインラインで配信する
  • ChromePdfRenderer を使用して HTML 文字列から動的な PDF を生成する
  • Content-Disposition ヘッダーによるインライン表示とファイルダウンロードの制御
  • RenderingOptions を介してヘッダー、フッター、余白、セキュリティ設定を追加します
  • PDF 生成に MVC コントローラーの代わりにRazor Pages を使用する
  • 機密文書にパスワード保護と権限制限を適用する
  • 非同期レンダリングとレスポンスキャッシュによるパフォーマンスの向上

ここから、複数の PDF の結合入力可能なフォームの作成CSHTML Razorビューからの PDF の生成など、より高度なワークフローを調べることができます。 IronPDF のドキュメントでは、実用的なコード サンプルとともにすべての機能が説明されています。

無料トライアルを開始してIronPDF の全機能を試すか、実稼働環境での使用のためにライセンスを購入してください

よくある質問

ASP.NET Core MVCアプリケーションでPDFファイルを表示するには?

IronPDF を使用することで、ASP.NET Core MVCアプリケーションでPDFファイルを表示することができます。最新のビルトインPDFビューアを使用して、ブラウザで直接PDFファイルを生成、レンダリング、表示することができます。

ブラウザでPDFを表示するには、サードパーティのプラグインが必要ですか?

いいえ、最近のブラウザにはPDFビューアが内蔵されており、正しいMIMEタイプでPDFファイルを提供すると自動的に有効になります。IronPDFはあなたのPDFが正しく提供されるようにサポートします。

ASP.NET Core MVCでIronPDFを使用する利点は何ですか?

IronPDFは.NET PDFライブラリで、ASP.NET Core MVCアプリケーション内でのPDFドキュメントの生成とレンダリングのプロセスを簡素化し、生産性を高め、PDF管理を合理化します。

IronPDFは既存のブラウザーPDFビューアーと一緒に使えますか?

IronPDFは既存のブラウザのPDFビューアとシームレスに動作し、PDFはブラウザで自動的に表示されるように正しいMIMEタイプで提供されます。

IronPDFは頻繁に更新されますか?

IronPDFは頻繁に更新される.NET PDFライブラリで、ASP.NET Core MVCアプリケーションでPDFドキュメントを扱うための最新の機能と改善を提供します。

IronPDFはウェブアプリケーションでどのようにPDFを生成するのですか?

IronPDFは様々なコンテンツタイプからPDFを生成する堅牢な機能を提供し、開発者がウェブアプリケーション内でダイナミックでインタラクティブなPDFドキュメントを作成することを可能にします。

PDFファイルを提供するには、どのMIMEタイプを使用すべきですか?

ブラウザでの適切な表示を保証するために、PDFファイルはMIMEタイプ'application/pdf'で提供されるべきです。IronPDFはこの点を効率的に管理するお手伝いをします。

IronPDFでPDFレンダリングをカスタマイズできますか?

IronPDFはPDFのレンダリングに広範なカスタマイズオプションを提供しており、特定のデザインや機能要件を満たすように出力を調整することができます。

IronPDFはASP.NET Core MVCアプリケーションのみをサポートしていますか?

IronPDFはASP.NET Core MVCアプリケーションに最適ですが、他 for .NETアプリケーションでPDF機能を扱うこともできます。

カーティス・チャウ
テクニカルライター

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

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

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね