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

IronPDFを使用してASP.NET CoreでPDFビューアを構築する方法

PDF ドキュメントを Web ブラウザーに直接表示することは、最新のASP.NET Coreアプリケーションの一般的な要件です。 請求書、レポート、契約書などを作成する場合でも、ユーザーはファイルをダウンロードしたり、Adobe Acrobat Reader などのサードパーティ製プラグインをインストールしたりすることなく、スムーズに PDF を表示できることを期待しています。 IronPDF は、Chrome ベースのレンダリング エンジンを介してサーバー側で PDF を生成し、ストリーミングすることで、外部のビューアに依存することなく、これを簡単に実現します。

このチュートリアルでは、 IronPDFを使用してASP.NET Coreで PDF ファイルを表示、保存、印刷する方法について説明します。 また、ライブラリがコンテナとクラウドのデプロイメントをどのように処理し、本番環境の DevOps パイプラインにとって信頼できる選択肢となるかについても学習します。

IronPDF C# PDFライブラリのプロモーションバナーで、HTMLからPDFへの変換、編集ツール、導入の柔軟性、無料トライアルオファーを強調しています

ブラウザは PDF ファイルをインラインでどのように表示するのでしょうか?

最新のブラウザにはPDFビューアが組み込まれており、application/pdf MIMEタイプで応答を受け取るとアクティブになります。 ASP.NET Coreコントローラーが正しい Content-Type ヘッダーを持つ PDF を返すと、ブラウザーはそれを自動的にインラインでレンダリングします。プラグインのインストールは必要ありません。 MDN Web Docsによれば、ブラウザがファイル応答を処理する方法を制御するには、正しい MIME タイプ構成が不可欠です。

IronPDFは、フルChromiumエンジンを埋め込んだChromePdfRendererクラスを使用してサーバーサイドでPDFを生成します。これにより、CSS、JavaScript、ウェブフォント、デジタル署名のフルサポートでドキュメントがレンダリングされます。これはGoogle Chromeを駆動するのと同じレンダリングパイプラインです。 結果的に、クライアント側のビューア ライブラリなしでブラウザがインラインで表示するピクセルパーフェクトな出力が得られます。

コンテナ化された環境では、このアーキテクチャは特に価値があります。 レンダラーは、外部のヘッドレス ブラウザ プロセスを生成したり、リモート サービスに依存したりすることなく、完全にインプロセスで実行されます。 リソースのクリーンアップは自動的に行われるため、長時間実行されるASP.NET Coreサービスでのメモリ リークを防止できます。 利用可能なレンダリング機能全体を理解するには、 IronPDF の全機能セットを確認してください。

PDFソフトウェアの機能を表示する4列のフィーチャーグリッド:PDFの作成、PDFの変換、PDFの編集、PDFの署名とセキュリティで、各カテゴリーの詳細な機能リストがあります

サーバーサイドレンダリングで一貫した結果が得られるのはなぜですか?

サーバー側レンダリングにより、PDF 生成プロセスからブラウザの変動性が排除されます。 PDF がクライアント側で生成される場合、出力品質はエンドユーザーのブラウザのバージョン、オペレーティング システム、インストールされているフォントによって異なります。 IronPDF を使用すると、Windows、Linux、Docker コンテナーなど、すべてのサーバーで同じ Chromium エンジンが実行され、コンプライアンス ドキュメント、請求書、署名済み契約書の同一の出力が保証されます。

Chrome エンジンは、単純な HTML から PDF へのコンバーターと比べて何を提供しますか?

単純な HTML から PDF へのコンバーターでは、 JavaScript の実行がスキップされたり、CSS メディア クエリが無視されたり、不適切なタイポグラフィが生成されたりすることがよくあります。 IronPDFのChromeエンジンはJavaScriptの完了を待ち、@media printスタイルを尊重し、SVGグラフィックを処理し、国際的なコンテンツに対するUTF-8文字エンコーディングをサポートします。 この忠実度は、ユーザーが印刷したりアーカイブしたりするドキュメントを表示するときに重要になります。

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

新しいASP.NET Coreプロジェクトを作成するには、コマンドを 1 つ実行します。 ターミナルを開いて次のコマンドを実行します:

dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
SHELL

次に、IronPDF NuGetパッケージをインストールします。 パッケージ マネージャー コンソールまたは.NET CLI のいずれかを使用できます。

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

これにより、Chrome エンジン、PDF 処理ライブラリ、およびすべてのプラットフォーム固有の依存関係など、必要なものがすべてインストールされます。 IronPDF は、追加のフレームワーク構成なしで.NET 6、7、8、9、10 をサポートします。 IronPDF のドキュメントでは、 AWS Lambdaなどのサイズが制限されたデプロイメント向けのスリム パッケージを含む高度なインストール オプションについて説明しています。

Visual StudioパッケージマネージャーコンソールにIronPDF NuGetパッケージのインストール進行状況が表示されており、Iron Softwareコンポーネント、gRPC、およびSystem.Threading.Channelsなどの複数の依存ダウンロードが含まれています

どのパッケージバリアントを選択すべきでしょうか?

標準のデプロイメントにはIronPdfを使用します。 AWS Lambdaやエッジファンクションのようなサイズ制限が厳しい環境では、IronPdf.Slimパッケージが初期ダウンロードのフットプリントを減少させます。 どちらのバリアントも同じ API を公開するため、切り替え時にコードを変更する必要はありません。

コンテナ環境における一般的なインストールの問題は何ですか?

Linux コンテナーでは、グラフィックス操作のために追加のシステム ライブラリが必要になる場合があります。 最小限の Dockerfile セットアップには以下が含まれます。

apt-get update && apt-get install -y libgdiplus libc6-dev libx11-dev
apt-get update && apt-get install -y libgdiplus libc6-dev libx11-dev
SHELL

Windows コンテナーは通常、追加の依存関係なしで動作します。 トラブルシューティングを行うには、IronPDF の組み込みログ記録を有効にして、レンダリング エラーが HTTP 500 応答として表示される前にそれをキャプチャします。

ブラウザで PDF をインラインで表示するにはどうすればよいですか?

インラインブラウザビューのためにPDFを返すには、PDFの生成、application/pdf MIMEタイプの設定、およびFile()結果からのファイル名の省略が必要です。 完全なコントローラーアクションは次のとおりです。

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();

// PdfController.cs
public class PdfController : Controller
{
    public IActionResult ViewPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PrintHtmlBackgrounds = true;
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.RenderDelay = 100;

        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Invoice #12345</h1>
                <div class='content'>
                    <p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
                    <p>Thank you for your business!</p>
                </div>
            </body>
            </html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

        // Omitting the filename tells the browser to display inline
        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();

// PdfController.cs
public class PdfController : Controller
{
    public IActionResult ViewPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PrintHtmlBackgrounds = true;
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.RenderDelay = 100;

        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Invoice #12345</h1>
                <div class='content'>
                    <p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
                    <p>Thank you for your business!</p>
                </div>
            </body>
            </html>";

        var pdf = renderer.RenderHtmlAsPdf(html);

        // Omitting the filename tells the browser to display inline
        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()

' PdfController.vb
Public Class PdfController
    Inherits Controller

    Public Function ViewPdf() As IActionResult
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.PrintHtmlBackgrounds = True
        renderer.RenderingOptions.CreatePdfFormsFromHtml = True
        renderer.RenderingOptions.EnableJavaScript = True
        renderer.RenderingOptions.RenderDelay = 100

        Dim html = "
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Invoice #12345</h1>
                <div class='content'>
                    <p>Date: " & DateTime.Now.ToString("yyyy-MM-dd") & "</p>
                    <p>Thank you for your business!</p>
                </div>
            </body>
            </html>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)

        ' Omitting the filename tells the browser to display inline
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

鍵となるのはContent-Disposition: inlineが設定され、ブラウザの内蔵PDFビューアがトリガーされます。 ファイル名を追加するとContent-Disposition: attachmentに切り替わり、ダウンロードがトリガーされます。 その他の HTML 変換パターンについては、 HTML 文字列から PDF へのガイドを参照してください。

トラフィック量の多いアプリケーションでは、スレッドのブロックを回避するために非同期レンダリング メソッドを使用します。

public async Task<IActionResult> ViewPdfAsync()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.Timeout = 60;

    var html = await GetHtmlContentAsync();
    var pdf = await renderer.RenderHtmlAsPdfAsync(html);

    return File(pdf.BinaryData, "application/pdf");
}
public async Task<IActionResult> ViewPdfAsync()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.Timeout = 60;

    var html = await GetHtmlContentAsync();
    var pdf = await renderer.RenderHtmlAsPdfAsync(html);

    return File(pdf.BinaryData, "application/pdf");
}
Imports System.Threading.Tasks

Public Async Function ViewPdfAsync() As Task(Of IActionResult)
    Dim renderer = New ChromePdfRenderer()
    renderer.RenderingOptions.Timeout = 60

    Dim html = Await GetHtmlContentAsync()
    Dim pdf = Await renderer.RenderHtmlAsPdfAsync(html)

    Return File(pdf.BinaryData, "application/pdf")
End Function
$vbLabelText   $csharpLabel

標準的なナビゲーションコントロールを備えたウェブベースのPDFビューアで表示される基本的なPDF請求書の例

非同期 PDF 生成はいつ使用すべきですか?

非同期生成は、同時リクエストを受信するエンドポイントにとって重要です。 同期生成はASP.NET Coreスレッド プールのスレッドをブロックし、アプリケーションが処理できる同時要求の数を減らします。 早めに非同期メソッドに切り替えてください。API サーフェスは同一なので、移行は簡単です。

他にレンダリングできる HTML ソースは何ですか?

HTML 文字列以外にも、 IronPDF はURL、ディスク上の HTML ファイル、 Razorビューからレンダリングします。 renderer.RenderHtmlFileAsPdf("wwwroot/templates/invoice.html")はローカルファイルシステムから読み取ります。 この柔軟性により、個別の HTML ファイルを維持することなく、既存のRazorテンプレートを PDF テンプレートとして再利用できます。 IronPDFのNuGetギャラリー リストには、現在のパッケージ バージョンとリリース ノートが表示されます。

ASP.NET Coreで PDF ファイルのダウンロードを有効にするにはどうすればよいでしょうか?

インライン表示の代わりにファイルのダウンロードをトリガーするのは、単一のパラメータの変更です。 attachmentに設定されます:

public IActionResult DownloadPdf()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.ImageQuality = 85;

    var html = @"<h1>Quarterly Report</h1>
                 <p>Revenue this quarter exceeded projections by 12%.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html, @"wwwroot/images");

    // Compress images to reduce download size
    pdf.CompressImages(30);

    // The filename parameter triggers download instead of inline view
    return File(pdf.BinaryData, "application/pdf", "quarterly-report-2026.pdf");
}
public IActionResult DownloadPdf()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.ImageQuality = 85;

    var html = @"<h1>Quarterly Report</h1>
                 <p>Revenue this quarter exceeded projections by 12%.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html, @"wwwroot/images");

    // Compress images to reduce download size
    pdf.CompressImages(30);

    // The filename parameter triggers download instead of inline view
    return File(pdf.BinaryData, "application/pdf", "quarterly-report-2026.pdf");
}
Public Function DownloadPdf() As IActionResult
    Dim renderer = New ChromePdfRenderer()
    renderer.RenderingOptions.ImageQuality = 85

    Dim html As String = "<h1>Quarterly Report</h1>
                          <p>Revenue this quarter exceeded projections by 12%.</p>"
    Dim pdf = renderer.RenderHtmlAsPdf(html, "wwwroot/images")

    ' Compress images to reduce download size
    pdf.CompressImages(30)

    ' The filename parameter triggers download instead of inline view
    Return File(pdf.BinaryData, "application/pdf", "quarterly-report-2026.pdf")
End Function
$vbLabelText   $csharpLabel

多数のユーザーに提供される大きなドキュメントの場合、ストリーミングによりピーク時のメモリ消費量が削減されます。

public IActionResult StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    var html = "<h1>Large Report</h1><p>Content spanning many pages.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);

    var stream = pdf.Stream;
    stream.Position = 0;

    // Stream directly without buffering the full byte array
    return File(stream, "application/pdf", "report.pdf");
}
public IActionResult StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    var html = "<h1>Large Report</h1><p>Content spanning many pages.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);

    var stream = pdf.Stream;
    stream.Position = 0;

    // Stream directly without buffering the full byte array
    return File(stream, "application/pdf", "report.pdf");
}
Imports IronPdf

Public Function StreamPdf() As IActionResult
    Dim renderer As New ChromePdfRenderer()
    Dim html As String = "<h1>Large Report</h1><p>Content spanning many pages.</p>"
    Dim pdf = renderer.RenderHtmlAsPdf(html)

    Dim stream = pdf.Stream
    stream.Position = 0

    ' Stream directly without buffering the full byte array
    Return File(stream, "application/pdf", "report.pdf")
End Function
$vbLabelText   $csharpLabel

ストリーミングは PDF データを段階的に送信するため、同時ユーザーに大きなファイルを提供するときにピーク時のメモリ使用量が大幅に削減されます。 その他のエクスポート パターンについては、 PDF の結合と分割、およびPDF からのテキストの抽出に関するガイドを参照してください。

IronPDF for .NETを使用して生成されたPDFドキュメントの例で、標準のPDFビューアインターフェイスで表示されています

さまざまなドキュメント タイプに最適な圧縮設定は何ですか?

テキストの多い PDF は、視覚的な影響を最小限に抑えながら、70 ~ 80% の画質で適切に圧縮されます。 マーケティングパンフレットなどの画像を多く含むドキュメントでは、鮮明さを保つために 85 ~ 95% の品質が必要です。 チャートを含む財務レポートでは、グラフの読みやすさを維持するために、85% 以上を維持する必要があります。 実稼働環境に展開する前に、代表的なドキュメントに対して圧縮レベルをテストします。

ASP.NET Coreで印刷可能な PDF を生成するにはどうすればよいでしょうか?

印刷対応のPDFには特定のページ構成が必要です:印刷CSSメディアタイプ、定義されたマージン、および明示的な用紙サイズ。IronPDFはこれらすべてをRenderingOptionsを通して公開します:

public IActionResult PrintablePdf()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
    renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.MarginLeft = 25;
    renderer.RenderingOptions.MarginRight = 25;

    // Add headers and footers for professional print output
    renderer.RenderingOptions.TextHeader = new TextHeaderFooter
    {
        CenterText = "Confidential Document",
        DrawDividerLine = true
    };
    renderer.RenderingOptions.TextFooter = new TextHeaderFooter
    {
        CenterText = "Page {page} of {total-pages}",
        FontSize = 10
    };

    var html = @"
        <style>
            @media print {
                .no-print { display: none; }
                .page-break { page-break-after: always; }
            }
        </style>
        <h1>Print-Ready Document</h1>
        <p>This document is formatted for A4 printing with standard margins.</p>
        <div class='page-break'></div>
        <h2>Page 2</h2>
        <p>Content continues on the second page.</p>";

    var pdf = renderer.RenderHtmlAsPdf(html);
    return File(pdf.BinaryData, "application/pdf");
}
public IActionResult PrintablePdf()
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
    renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.MarginLeft = 25;
    renderer.RenderingOptions.MarginRight = 25;

    // Add headers and footers for professional print output
    renderer.RenderingOptions.TextHeader = new TextHeaderFooter
    {
        CenterText = "Confidential Document",
        DrawDividerLine = true
    };
    renderer.RenderingOptions.TextFooter = new TextHeaderFooter
    {
        CenterText = "Page {page} of {total-pages}",
        FontSize = 10
    };

    var html = @"
        <style>
            @media print {
                .no-print { display: none; }
                .page-break { page-break-after: always; }
            }
        </style>
        <h1>Print-Ready Document</h1>
        <p>This document is formatted for A4 printing with standard margins.</p>
        <div class='page-break'></div>
        <h2>Page 2</h2>
        <p>Content continues on the second page.</p>";

    var pdf = renderer.RenderHtmlAsPdf(html);
    return File(pdf.BinaryData, "application/pdf");
}
Imports System.Web.Mvc

Public Function PrintablePdf() As ActionResult
    Dim renderer = New ChromePdfRenderer()
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
    renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
    renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
    renderer.RenderingOptions.MarginTop = 25
    renderer.RenderingOptions.MarginBottom = 25
    renderer.RenderingOptions.MarginLeft = 25
    renderer.RenderingOptions.MarginRight = 25

    ' Add headers and footers for professional print output
    renderer.RenderingOptions.TextHeader = New TextHeaderFooter With {
        .CenterText = "Confidential Document",
        .DrawDividerLine = True
    }
    renderer.RenderingOptions.TextFooter = New TextHeaderFooter With {
        .CenterText = "Page {page} of {total-pages}",
        .FontSize = 10
    }

    Dim html = "
        <style>
            @media print {
                .no-print { display: none; }
                .page-break { page-break-after: always; }
            }
        </style>
        <h1>Print-Ready Document</h1>
        <p>This document is formatted for A4 printing with standard margins.</p>
        <div class='page-break'></div>
        <h2>Page 2</h2>
        <p>Content continues on the second page.</p>"

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

@media print CSSルールがレンダリング前にアクティブになります。 これにより、ナビゲーション バー、サイドバー、その他の画面のみの要素が非表示になります。 ユーザーは、標準のキーボード ショートカットを使用して、ブラウザーの組み込みビューアから PDF を印刷し、プリンターの選択とコピー数を完全に制御できます。 高度なヘッダーとフッターのパターンについては、ヘッダーとフッターのガイドを参照してください。

印刷されたドキュメントに透かしを追加し、配布前にデジタル署名を行ったり、パスワードと権限の設定で保護したりすることもできます。 これらの機能はPdfDocument APIを通じて直接統合され、別個の処理ステップを必要としません。

標準のPDFビューアに印刷可能なPDFドキュメントとして表示された例で、印刷された出力に特有のフォーマットが表示されています

どのようなページ構成でプリンタ間の互換性が保証されますか?

20 ~ 25 mm の余白を持つ標準の A4 またはレター サイズは、すべてのプリンター モデルで確実に動作します。 展開が既知のプリンター群を対象としている場合を除き、カスタム用紙サイズは使用しないでください。 独自のページブレークメソッドの代わりにCSSのpage-break-afterプロパティを使用します。 W3C CSS Paged Media 仕様では、これらのプロパティが詳細に定義されています。 これらの標準 CSS プロパティは、Chrome レンダリング エンジンと物理プリンター間で一貫して機能します。

ASP.NET Core PDF ビューアーを Docker にデプロイするにはどうすればよいですか?

IronPDF は、コードを変更することなく Linux および Windows コンテナー上で実行されます。 以下の Dockerfile で使用されるベース イメージは、定期的なセキュリティ パッチでメンテナンスされるMicrosoft の公式.NETコンテナー イメージから取得されます。 以下の Docker 構成では、必要なシステム ライブラリがインストールされ、最小限のイメージ サイズでマルチステージ ビルドが生成されます。

FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
WORKDIR /app

RUN apt-get update && apt-get install -y \
    libgdiplus \
    libc6-dev \
    libx11-dev \
    && rm -rf /var/lib/apt/lists/*

FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
COPY ["PdfViewerApp.csproj", "./"]
RUN dotnet restore "PdfViewerApp.csproj"
COPY . .
RUN dotnet build "PdfViewerApp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "PdfViewerApp.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "PdfViewerApp.dll"]

Kubernetes デプロイメントの場合、PDF 生成をエンドツーエンドで検証するヘルスチェック エンドポイントを追加します。

builder.Services.AddHealthChecks()
    .AddCheck("pdf_generation", () =>
    {
        try
        {
            var renderer = new ChromePdfRenderer();
            var pdf = renderer.RenderHtmlAsPdf("<p>Health check</p>");
            return pdf.PageCount > 0
                ? HealthCheckResult.Healthy()
                : HealthCheckResult.Unhealthy("PDF generation returned empty document");
        }
        catch (Exception ex)
        {
            return HealthCheckResult.Unhealthy(ex.Message);
        }
    });
builder.Services.AddHealthChecks()
    .AddCheck("pdf_generation", () =>
    {
        try
        {
            var renderer = new ChromePdfRenderer();
            var pdf = renderer.RenderHtmlAsPdf("<p>Health check</p>");
            return pdf.PageCount > 0
                ? HealthCheckResult.Healthy()
                : HealthCheckResult.Unhealthy("PDF generation returned empty document");
        }
        catch (Exception ex)
        {
            return HealthCheckResult.Unhealthy(ex.Message);
        }
    });
Imports System
Imports Microsoft.Extensions.DependencyInjection
Imports Microsoft.Extensions.Diagnostics.HealthChecks

builder.Services.AddHealthChecks().AddCheck("pdf_generation", Function()
    Try
        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<p>Health check</p>")
        Return If(pdf.PageCount > 0, HealthCheckResult.Healthy(), HealthCheckResult.Unhealthy("PDF generation returned empty document"))
    Catch ex As Exception
        Return HealthCheckResult.Unhealthy(ex.Message)
    End Try
End Function)
$vbLabelText   $csharpLabel

このヘルスチェックにより、Kubernetes はユーザーがエラーに遭遇する前に、正常でないポッドを検出して置き換えることができます。 また、標準のASP.NET Coreヘルス監視ミドルウェアとも統合されます。 IronPDF試用ライセンスには、制限なしで Docker テストの完全な機能が含まれています。

インプロセス レンダラーの展開の利点は何ですか?

以下の表は、IronPDF のインプロセス アプローチと、サーバー側での PDF 生成に一般的に使用されるヘッドレス ブラウザー サーバー設定を比較したものです。

ASP.NET Coreの PDF 生成アプローチの比較
要素 IronPDF (進行中) ヘッドレスブラウザサーバー
展開の複雑さ NuGetパッケージのみ 別個のプロセスまたはサービス
ネットワーク遅延 なし(処理中) リクエストごとのHTTPラウンドトリップ
コンテナフットプリント 単一コンテナ 最低2つのコンテナ
健康モニタリング 標準のASP.NET Coreミドルウェア 個別のサービスヘルスチェック
レンダリングの一貫性 Chromeエンジン、ロックバージョン ブラウザのバージョンによって異なります

ビューアに高度な PDF 機能を追加するにはどうすればよいですか?

IronPDF は、基本的な表示やダウンロードをはるかに超えた機能を備えています。 HTMLをPDFにレンダリングする同じライブラリは、PDFフォームの処理カスタム透かしデジタル署名、およびPDFから画像への変換も提供します。すべて追加パッケージなしで行えます。

ドキュメント管理ワークフローでは、アップロードされたファイルを PDF に変換し、インデックス作成用のテキストを抽出し、ドキュメントに注釈を付けて、ユーザーに返すといった操作をすべて単一のASP.NET Coreコントローラー内で実行できます。 IronPDF の機能ページでは、各機能領域のコード サンプルを含む完全な機能の概要が提供されています。

ビューア アプリケーションで注目すべき主な機能:

-テキスト抽出- 検索やコンプライアンス アーカイブのために PDF コンテンツをインデックスします -結合と分割- 複数のドキュメントを結合したり、特定のページを抽出したりします -透かし- 文書を表示する前に機密保持通知やブランドをスタンプします -デジタル署名- ブラウザにストリーミングする前に生成された PDF に署名します -ヘッダーとフッター- ページ番号、文書タイトル、区切り線を追加します

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

機密文書を表示するアプリケーションでは、IronPDFのパスワードと権限機能をASP.NET Coreの承認ミドルウェアと組み合わせてください。 コントローラー アクションを認証を要求するように設定し、PDF をストリーミングします。ドキュメントはファイル システムや認証されていないエンドポイントに触れることはありません。

監査証跡の要件を満たすには、ストリーミングする前に PDF にデジタル署名します。 署名は署名タイムスタンプを記録し、文書の整合性を検証します。これは、ブラウザ ビューアで表示される財務文書や法律文書にとって重要です。

どのようなライセンス オプションが利用可能ですか?

IronPDF のライセンスは、 Docker および Kubernetes 環境での開発、ステージング、概念実証作業に適した完全な機能を備えた無料トライアルから始まります。 実稼働ライセンスは、単一の開発者による展開から無制限のサーバー展開まで、さまざまな展開シナリオをカバーします。

IronPDF のドキュメントには、詳細な API リファレンス、 .NETバージョン間のアップグレードのための移行ガイド、Windows、Linux、macOS、AWS、Azure のプラットフォーム固有のセットアップ手順が記載されています。

IronPDF offers flexible licensing options starting at $749 for single developers up to $3,999 for unlimited usage, with significant discounts currently available

IronPDFを使用すると、 ASP.NET Coreに PDF ビューアを組み込むのに数分しかかかりません。 Chromeベースのレンダリングエンジンは、HTMLからPDFへの変換の複雑さを処理し、ASP.NET CoreのFile()結果はインライン対ダウンロードの動作を処理し、同じパッケージは印刷、透かし、デジタル署名、コンテナデプロイメントも網羅します。 まずは無料トライアルから始めて、要件の拡大に合わせて高度なドキュメント機能を追加してください。

よくある質問

IronPDF はどのようにASP.NET CoreアプリケーションでPDFを表示できますか?

IronPDFは強力なChromeベースのレンダリングエンジンを使用し、ダウンロードや追加プラグインを必要とせず、ウェブブラウザで直接PDFファイルを表示することで、プロセスを簡素化します。

ASP.NET CoreでPDFビューアを使用する利点は何ですか?

.NET CoreでIronPDFのようなPDFビューアを使用すると、ブラウザ内でPDFのシームレスな表示、保存、印刷が可能になり、Adobe Acrobat Readerのような外部アプリケーションが不要になるため、ユーザーエクスペリエンスが向上します。

IronPDFでPDFを見るにはAdobe Acrobat Readerが必要ですか?

IronPDFは、Adobe Acrobat Readerやその他のプラグインを必要とせず、ブラウザで直接PDFを閲覧することができます。

ASP.NET CoreアプリケーションでIronPDFを使って表示できるドキュメントの種類は?

IronPDFはASP.NET Coreアプリケーションで請求書、レポート、契約書など様々なタイプのドキュメントをシームレスに表示するために使用できます。

IronPDF はASP.NET CoreでPDFドキュメントの印刷をサポートしていますか?

IronPDFはウェブアプリケーションから直接PDF文書の印刷をサポートし、完全なPDF管理ソリューションを提供します。

IronPDF はASP.NET Coreで複雑なPDFレイアウトを正確にレンダリングできますか?

IronPDFはChromeベースのレンダリングエンジンを使用して複雑なPDFレイアウトを正確にレンダリングし、忠実度を損なうことなく高品質の表示を保証します。

IronPDF for ASP.NET Coreを使ってPDFファイルを表示するには、PDFファイルをダウンロードする必要がありますか?

IronPDFは、PDFファイルをダウンロードすることなく、ウェブブラウザ上で直接PDFファイルを閲覧することができます。

IronPDFはウェブアプリケーションでのPDF閲覧体験をどのように改善しますか?

IronPDFはASP.NET Coreとのシームレスな統合を提供することで、PDFの閲覧体験を改善し、ユーザーがブラウザで直接PDFを閲覧、保存、印刷できるようにします。

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

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

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

アイアンサポートチーム

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