IRONSOFTWAREHOME
IRONPDFの使用

.NET Core用PDF API:C#でPDFを生成および編集する

Curtis Chau
Curtis Chau
Updated: 2026年7月12日

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

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

IronPDF C# PDFライブラリのプロモーションバナー。HTMLからPDFへの変換、編集ツール、展開の柔軟性、無料トライアルを強調

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

現代のブラウザには、application/pdf MIMEタイプの応答を受け取るとアクティブになる、組み込みのPDFビューアーが含まれています。 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
SHELL

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

PM > Install-Package IronPdf

これにより、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
SHELL

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

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

ブラウザ内でインライン表示するPDFを返すには、3つのステップが必要です: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");
    }
}

キーは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");
}

標準的なナビゲーションコントロールを備えたウェブベースの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 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");
}

ストリーミングは 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");
}

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

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

印刷対応のPDFドキュメントの例。標準のPDFビューアーで印刷出力用の特徴的なフォーマットを示している

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

20 ~ 25 mm の余白を持つ標準の A4 またはレター サイズは、すべてのプリンター モデルで確実に動作します。 展開が既知のプリンター群を対象としている場合を除き、カスタム用紙サイズは使用しないでください。 独自のページ区切り方法の代わりに、CSS page-break-beforepage-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"]
Text

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

このヘルスチェックにより、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 のセキュリティとアクセス制御をどのように処理しますか?

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

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

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

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

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

IronPDF offers flexible licensing options starting at $999 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()結果はインラインとダウンロードの動作を処理し、同じパッケージで印刷、透かし、デジタル署名、コンテナデプロイメントをカバーします。 まずは無料トライアルから始めて、要件の拡大に合わせて高度なドキュメント機能を追加してください。

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

Related Articles

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

bullet_checkedクレジットカードやアカウントの作成は不要です。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge related to IronPDF Product Demo

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。