IRONSOFTWAREHOME
IRONPDFの使用

How to Generate PDF Dynamically in .NET Using IronPDF

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

IronPDF は、Chrome ベースのレンダリング エンジンを使用してASP.NETで HTML を PDF に変換します。このエンジンは、わずか数行の C# コードで、HTML 文字列、ファイル、または URL をピクセル単位で完璧な PDF ドキュメントに変換します。

ASP.NETアプリケーションで請求書、レポート、コンプライアンス ドキュメントをオンデマンドで生成する必要がある場合、PDF 出力の品質が重要になります。 エンド ユーザーは、CSS スタイル、カスタム フォント、テーブル レイアウトが完備された、元の HTML とまったく同じフォーマットされた出力を期待しています。 課題は、最新の CSS や JavaScript を多用するコンテンツに対して複雑な回避策を必要とせずにこの変換を処理するライブラリを見つけることです。

IronPDF は、この課題のために構築された C# PDF ライブラリです。 Chrome ベースのレンダリング エンジンは、実際のブラウザと同じように HTML を処理するため、CSS3 プロパティ、メディア クエリ、JavaScript でレンダリングされたコンテンツはすべて最終ドキュメントに正しく表示されます。 以下のセクションでは、インストール、3 つのコア レンダリング方法、フォーム データの処理、高度な書式設定機能、認証サポートなど、実稼働対応の PDF 生成をASP.NET Coreアプリケーションに統合するために必要なすべての内容について説明します。

ASP.NET Coreで HTML を PDF に素早く変換するにはどうすればよいですか?

ASP.NET CoreでHTML から PDF への変換を開始するには、数行のコードだけが必要です。 まず、 NuGetパッケージ マネージャーを使用してIronPDF をインストールします。

PM > Install-Package IronPdf

一度インストールすると、ChromePdfRenderer クラスがすべてのレンダリング操作の主要なエントリーポイントになります。 以下は、 ASP.NET Core MVC コントローラー内で HTML 文字列をダウンロード可能な PDF に変換する方法を示した完全な例です。

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2このコード スニペットをコピーして実行します。

    using IronPdf;
    using Microsoft.AspNetCore.Mvc;
    
    // program.cs
    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 GeneratePdf()
        {
            var renderer = new ChromePdfRenderer();
            string html = @"
                <h1>Invoice #2024-001</h1>
                <p>Generated on: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
                <table>
                    <tr><th>Item</th><th>Price</th></tr>
                    <tr><td>Professional License</td><td>$999</td></tr>
                </table>";
            var pdf = renderer.RenderHtmlAsPdf(html);
            return File(pdf.BinaryData, "application/pdf", "invoice.pdf");
        }
    }
    C#
  3. 3実際の環境でテストするためにデプロイする

    今日プロジェクトで IronPDF を使い始めましょう無料トライアル
    arrow pointer

生成されたPDFはどのように見えますか?

PDFビューアに簡単な請求書ドキュメントが表示され、番号 #2024-001、請求書ヘッダー、生成日、項目と価格の列を含むProfessional Licenseエントリが含まれています$999

ChromePdfRenderer クラスはすべての複雑なレンダリングを処理し、HTML 構造、CSS スタイル、さらにはJavaScript が最終的な PDF 出力で正しくレンダリングされることを保証します。 戻り値は、PdfDocument オブジェクトであり、その BinaryData プロパティを使用して、ブラウザにファイルのダウンロードとして直接ストリームできます。

ソースに適したレンダリング方法を選択するにはどうすればよいでしょうか?

IronPDF は、それぞれ特定のコンテンツ ソース向けに設計された 3 つの主要なレンダリング方法を提供します。 どの方法がシナリオに適しているかを理解することで、不必要な複雑さを回避し、コントローラー コードをクリーンな状態に保つことができます。

コンテンツソース別のIronPDFレンダリング方法
ソースタイプ方法最適な用途
メモリ内のHTML文字列RenderHtmlAsPdfデータベース駆動型レポート、テンプレート化された請求書、動的コンテンツ
ディスク上のHTMLファイルRenderHtmlFileAsPdfwwwroot 内の静的テンプレート、デザインエージェンシー提供のレイアウト
ライブウェブURLRenderUrlAsPdfページのアーカイブ、 JavaScriptレンダリング後の SPA のキャプチャ

動的な HTML 文字列を変換するにはどうすればよいですか?

データベース駆動のレポートのようなダイナミックなコンテンツを取り扱うときは、HTML文字列を直接変換するために RenderHtmlAsPdf を使用してください。 このメソッドは、有効な HTML マークアップを受け入れ、完全にレンダリングされた PDF を返します。

var renderer = new ChromePdfRenderer();
string htmlContent = BuildDynamicHtml(); // your method to generate HTML
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("dynamic-report.pdf");

CSSスタイリングを含むHTMLコンテンツがレンダリングされたIronPDFテストレポートが表示され、青いヘッダーが

このアプローチは、リアルタイム データ、フォーム送信、または動的に生成されたコンテンツが取り込まれた HTML テンプレートから PDF ドキュメントを生成する場合に適しています。 レンダリング エンジンは、カスタム フォント、色、表の書式設定など、すべての CSS スタイルを保持します。 相対パスを使用する外部スタイルシートや画像をHTML内で参照している場合、baseUrl を第2引数として渡して、レンダラがそれらのアセットを正しく解決できるようにします。

ディスクから静的 HTML ファイルを変換するにはどうすればよいでしょうか?

物理ファイルとして保存されているHTMLテンプレートに対しては、最初にメモリにロードせずに変換するために RenderHtmlFileAsPdf を使用します。これは大きなテンプレートに対して効率的で、文字列の結合を回避します:

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report-template.html");
pdf.SaveAs("report.pdf");

このメソッドは、ファイル内で参照されているCSSスタイルシート、画像、その他の外部リソースの相対パスを自動的に解決します。デザインチームがアプリケーションのC#コードベースとは別にHTMLテンプレートファイルを保持している場合に適しています。 このメソッドはCSS 印刷メディア クエリカスタム フォントをサポートしているため、印刷環境用に構築されたテンプレートは追加の構成なしで忠実にレンダリングされます。

Web ページの URL を PDF に変換するにはどうすればよいですか?

ライブウェブページをキャプチャするか、URLにアクセス可能なページをPDFとしてレンダリングするには、RenderUrlAsPdf を使用します。 このメソッドは Chrome エンジンを起動し、URL に移動し、ページが完全に読み込まれるまで待機してから、レンダリングされた出力をキャプチャします。

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(1000);
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("webpage.pdf");

WikipediaのメインページがPDFビューアに表示されており、ナビゲーション、コンテンツセクション、特集記事のプレビュー、およびWikipediaのロゴを含むウェブページ全体のレイアウトが示されています。HTMLからPDFへの変換が成功し、フォーマットと画像が保持されています

WaitFor.RenderDelay オプションは、ページロード後にキャプチャする前にレンダラに一時停止させます。 これは、最初の HTML 応答が到着した後にJavaScriptを通じて DOM を構築するシングルページ アプリケーションに役立ちます。 EnableJavaScript = true を設定すると、Chromeの完全なJavaScriptエンジンが有効になり、チャート、データグリッド、その他 for JavaScriptでレンダリングされたコンポーネントがブラウザと同様にPDFで表示されます。

フォームデータと POST リクエストをどのように処理しますか?

PDF 生成前にフォーム データを処理することは、 ASP.NETアプリケーションでは一般的なパターンです。注文確認、配送伝票、領収書はすべてこのモデルに従います。 このアプローチでは、投稿されたフォーム データをモデルにバインドし、そのモデルから HTML 文字列を構築し、その文字列を PDF としてレンダリングします。

[HttpPost]
public IActionResult ProcessFormToPdf(OrderModel model)
{
    var renderer = new ChromePdfRenderer();
    string html = $@"
        <h2>Order Confirmation</h2>
        <p>Customer: {model.CustomerName}</p>
        <p>Order Date: {model.OrderDate:yyyy-MM-dd}</p>
        <ul>
            {string.Join("", model.Items.Select(i => $"<li>{i.Name} -- ${i.Price}</li>"))}
        </ul>
        <p><strong>Total: ${model.Total}</strong></p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    string fileName = $"order-{model.OrderId}.pdf";
    return File(pdf.BinaryData, "application/pdf", fileName);
}

フォームインターフェースはどのように見えますか?

顧客詳細セクション、名前フィールド

生成された PDF にフォーム データはどのように表示されますか?

PDF viewer showing a clean order confirmation document with header 'Order Confirmation', customer name 'Jane Doe', order date '2025-11-19', itemized list showing laptop purchase for $1300, demonstrating successful form-to-PDF conversion

より高度なドキュメント シナリオでは、 PDF フォームを統合したり、事前に入力されたフィールドを使用して既存の PDF テンプレートを編集したりできます。 このライブラリは、法的文書や契約書のデジタル署名もサポートしており、生成された文書に暗号的に検証可能な署名を追加できます。

ユーザー データを HTML 文字列に埋め込むときに考慮すべき重要な点の 1 つは、サニタイズです。 インジェクションの問題を防ぐために、ユーザー指定の文字列を HTML に挿入する前に必ずエスケープしてください。 テンプレートをレンダラに渡す前に、各フィールドで単純な System.Web.HttpUtility.HtmlEncode(model.CustomerName) 呼び出しを行うことで、テンプレートを安全に保ちます。

プロフェッショナルな書式設定、ヘッダー、透かしを追加するにはどうすればよいでしょうか?

ヘッダー、フッター、透かしをどのように設定しますか?

プロフェッショナルな PDF ドキュメントでは、多くの場合、各ページにヘッダーとフッターが必要であり、ドラフトや機密ドキュメントには透かしも必要です。 IronPDFは、RenderingOptions オブジェクトおよび生成された PdfDocument のメソッド ApplyWatermark のプロパティを通して両方を処理します。

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    MaxHeight = 20,
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
};
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.ApplyWatermark("<h2 style='color:red;opacity:0.3'>CONFIDENTIAL</h2>",
    30, VerticalAlignment.Middle, HorizontalAlignment.Center);
pdf.SaveAs("report-with-watermark.pdf");

カスタム青色の見出し

フッターHTML内の {page} および {total-pages} プレースホルダーは、レンダ時間に自動的に置き換えられるため、ポストプロセスなしで正しいページ番号を取得できます。 ページ番号背景画像または前景オーバーレイカスタムテキストまたは画像スタンプを追加することもできます。

PDF レイアウト制御に CSS 印刷メディアを使用する方法

PDF出力が期待に一致することを確認するには、CSS @media print ルールと PdfCssMediaType.Print 設定を使用してください。 IronPDF はページ区切りの制御カスタム用紙サイズを完全にサポートします。

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.ViewPortWidth = 1024;
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;
string html = @"
    <style>
        @media print {
            .no-print { display: none; }
            body { font-size: 12pt; }
            .page-break { page-break-after: always; }
        }
        @page {
            size: A4;
            margin: 1cm;
        }
    </style>
    <div class='content'>
        <h1>Professional Report</h1>
        <div class='page-break'></div>
        <h2>Section 2</h2>
    </div>";
var pdf = renderer.RenderHtmlAsPdf(html);

76%ズームで2ページのプロフェッショナルレポートを表示するPDFドキュメントビューアが表示され、1ページに

印刷用CSSを使用することで、ナビゲーションメニューやインタラクティブボタンなどの不要なウェブ要素を隠しながら、PDF文書がプロフェッショナルな書式を維持できるようになります。 CssMediaType = PdfCssMediaType.Print を設定することで、レンダラが画面スタイルではなく @media print ルールを適用するように指示し、通常は背景装飾を削除し、印刷出力のためにタイポグラフィを調整します。 また、ページごとにカスタム余白を構成したり、ワイド形式または回転したレポートのページの向きと回転を制御したりすることもできます。

W3C CSS Paged Media仕様は、widows などのプロパティをページ出力でどのように動作するべきかを定義しています。 IronPDF の Chrome エンジンはこの仕様に厳密に従うため、CSS 標準に従って記述されたスタイルは手動で調整することなく PDF に正確に変換されます。

保護されたページの認証はどのように処理しますか?

安全なアプリケーションのために、 IronPDF はCookieHTTP リクエスト ヘッダーネットワーク資格情報などのさまざまな認証方法をサポートしています。 これにより、ログインしたセッションまたは基本認証を必要とするページをレンダリングできます。

var renderer = new ChromePdfRenderer();
renderer.RequestContext.Cookies.Add(new Cookie
{
    Name = "SessionId",
    Value = "your-session-token",
    Domain = "example.com"
});
renderer.ChromePdfRenderOptions.HttpLoginCredentials = new HttpLoginCredentials
{
    Username = "user",
    Password = "password"
};
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/protected/report");

作成された PDF を所有者パスワードとユーザーパスワードで暗号化し、印刷、コピー、編集などの操作を制限することもできます。 認証ベースのレンダリングと PDF レベルの権限を組み合わせることで、ドキュメントを生成できるユーザーと、ドキュメントを受け取った受信者がドキュメントで実行できる操作の両方を制御できます。

エンタープライズ環境では、Web リクエスト ハンドラー内で PDF を生成するときに、非同期レンダリング API の使用を検討してください。 非同期レンダリングにより、Chrome エンジンがドキュメントを処理している間、 ASP.NETスレッド プールが空いた状態が維持され、同時負荷時のスループットが向上します。 このライブラリは、バッチ ドキュメント生成シナリオ向けのマルチスレッド レンダリングもサポートしています。

HTML から PDF への変換に Chrome レンダリング エンジンが重要なのはなぜですか?

ほとんどのPDF生成ライブラリは、カスタムエンジンを用いてHTMLを解析することで動作します。つまり、CSSプロパティのサブセットしかサポートしておらず、 JavaScriptの実行機能も備えておらず、CSSグリッドやFlexboxといった最新のレイアウト技術との互換性に問題があります。 IronPDF は、Google Chrome ブラウザを動かすのと同じテクノロジーである Chrome エンジンを組み込むという異なるアプローチを採用しています。

実際の結果として、Chrome で正しく表示される HTML ページはすべて、 IronPDFを通じて PDF として正しくレンダリングされます。 これにより、レンダリング エンジンが CSS を開発者が設計時に使用したブラウザーとは異なる方法で解釈するため、PDF 出力が予想される外観と異なるという一般的なバグが排除されます。

CSS ページ メディアの MDN Web Docs リファレンスMicrosoft のASP.NET Coreドキュメントはどちらも、 IronPDF がChrome ベースの基盤を通じてサポートする機能について説明しています。 標準の HTML、CSS、 JavaScriptにすでに精通している開発者は、別のドキュメントレイアウト言語を学習することなく、その知識を PDF 生成に直接適用できます。

IronPDF のRenderingOptions は、用紙サイズ、余白、 JavaScript実行、レンダリング遅延のコントロールを公開します。 このライブラリは、UTF-8 テキストと国際文字セット、Google Fonts またはローカル ファイル経由で参照される Web フォントを処理し、 Markdown ドキュメントを PDF に変換することもできます。 アーカイブまたはアクセシビリティのコンプライアンス要件のために、 PDF/AおよびPDF/UA出力形式をサポートしています。 このライブラリはWindows、Linux、macOSで実行され、追加の構成なしでAzureおよびAWSにデプロイされます。

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

IronPDFを使用してASP.NET C#でHTMLをPDFに変換すると、アプリケーションに信頼性が高く、ブラウザ精度のドキュメント生成パイプラインが提供されます。HTML文字列、HTMLファイル、URLの3つのレンダリング方法により、実際に使用するあらゆるコンテンツソースをカバーします。ヘッダー、フッター、透かし、印刷CSSなどの高度な機能により、PDFを手動で後処理することなく、プロフェッショナルな出力を作成できます。

次のステップは、 NuGetパッケージをインストールし、このガイドの最初のセクションにあるクイックスタートサンプルを実行することです。その後、ドキュメント構造についてより深く理解するには、 C# PDFチュートリアルの完全版をご覧ください。また、 PDF編集ガイドでは、既存のPDFから結合、分割、注釈の追加、コンテンツの抽出を行う方法を学習できます。

プロジェクトがBlazor をターゲットとしている場合は、 Blazor PDF チュートリアルでサーバー側と WebAssembly の統合について説明します。 MVCプロジェクトにおいて、MVC Core PDFガイドおよびRazor Pagesガイドは、.cshtml ビューを使用したテンプレートベースのレンダリングをカバーしています。 デバッグとパフォーマンス チューニングのために、 IronPDF は、大量のドキュメント生成ワークフローのボトルネックを特定するのに役立つカスタム ログパフォーマンス ガイダンスを提供します。

ライセンス契約を結ぶ前に、無料トライアルを開始して、ライブラリのすべての機能を自分のプロジェクトでテストしてみてください。 本番導入向けに、ライセンスオプションが個々の開発者、チーム、企業の再配布シナリオに利用可能です。

Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

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

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

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

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