ASP.NET HTMLからPDFへの変換 - IronPDF
IronPDF は、CSS スタイルとJavaScript機能を保持する Chrome ベースのレンダリング エンジンを使用して、 ASP.NET HTML を PDF に変換します。 このチュートリアルでは、ASP.NET Coreアプリケーションで HTML 文字列、ビュー、URL をプロフェッショナルな PDF ドキュメントに変換する効果的な方法を示します。
動的なASP.NET HTML を PDF ドキュメントに変換することは、現代の Web アプリケーションの基本要件です。 請求書を生成する場合、レポートを作成する場合、ダウンロード可能な PDF ファイルを作成する場合など、HTML コンテンツをプロフェッショナルな PDF ドキュメントに変換することは、洗練されたユーザー エクスペリエンスを提供するために不可欠です。
IronPDF は、結果の PDF ドキュメントで HTML フォーマット、CSS スタイル、およびJavaScript機能を保持する信頼性の高い Chrome ベースのレンダリング エンジンを提供することで、この ASP HTML から PDF への変換プロセスを簡素化します。 このチュートリアルでは、ピクセルパーフェクトな結果を実現する Chrome レンダリング エンジンを含むIronPDFライブラリを使用して、 ASP.NET Coreアプリケーションで HTML を PDF に変換する効果的な方法について説明します。

なぜ開発者はHTMLからPDFへの変換が必要なのですか?
ASP.NET Coreアプリケーションは、ユーザーがPDFファイルとしてダウンロード、共有、またはアーカイブする必要がある動的HTMLコンテンツを生成することが多いです。 HTMLをPDFに変換することには、単にウェブページを保存したりスクリーンショットを撮ったりすることに比べていくつかの重要な利点があります。
PDFドキュメントは、すべてのデバイスやプラットフォームで一貫したフォーマットを維持し、請求書がWindows、Mac、またはモバイルデバイス上で同じように見えるようにします。 デジタル署名、セキュリティ制限、またはプロフェッショナルな印刷を必要とするドキュメントに最適です。 サーバー側での PDF 変換により、ユーザーは特定のソフトウェアをインストールする必要がなくなり、最終出力をより適切に制御できるようになります。
一般的な使用例には、ダッシュボードデータからの財務報告書の生成、注文情報からのダウンロード可能な請求書の作成、QRコードのついたチケットやパスの製作、フォームの送信を永久的な記録に変換することが含まれます。 ASP HTML から PDF への変換をサーバー上で処理することで、ユーザーのブラウザやデバイスの機能に関係なく、一貫した結果が得られます。 IronPDF は複雑なレイアウトのレンダリングに優れており、JavaScript を多用したコンテンツをスムーズに処理します。 このプロセスの基盤となるPDF 仕様はISO 標準化団体によって管理されており、PDF はクロスプラットフォーム配布に利用できる最も移植性の高いドキュメント形式となっています。

ASP.NETプロジェクトにIronPDFをインストールするにはどうすればよいでしょうか?
ASP.NET CoreプロジェクトでIronPDFを始めるのは簡単です。 このライブラリは.NET 6、8、10 をサポートしており、すべての最新のASP.NET Coreアプリケーションと互換性があります。 特定のプラットフォーム要件については、 Windows 互換性ガイドまたはLinux セットアップ手順を確認してください。
IronPDF をプロジェクトに追加する最も簡単な方法は、 NuGetパッケージ マネージャーを使用することです。 ソリューション エクスプローラーでプロジェクトを右クリックし、" NuGetパッケージの管理"を選択して、 IronPDFを検索します。 最新バージョンの"インストール"をクリックします。 詳細な手順については、 IronPDFインストール ガイドを参照してください。
パッケージ マネージャー コンソールを使用してインストールします。
Install-Package IronPdf
Install-Package IronPdf
または.NET CLIを使用して:
dotnet add package IronPdf
dotnet add package IronPdf

インストール後にIronPDF をどのように設定しますか?
インストールしたら、PDF 生成を行う任意の C# ファイルに using IronPdf; ディレクティブを追加します。 このインポートにより、ChromePdfRenderer クラスとすべてのレンダリング構成オプションにアクセスできるようになります。
ほとんどのASP.NET Coreアプリケーションでは、 IronPDF はインストール後すぐに動作します。 ただし、Program.cs ファイルでグローバル オプションを設定して、Windows、Linux、Docker、クラウドなどの特定のホスティング環境の動作を微調整できます。
using IronPdf;
// Optional global configuration (place in Program.cs)
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;
// Enable logging for debugging PDF rendering issues
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All;
Installation.LogFilePath = "IronPdfLog.log";
// Required for Azure App Service deployments
Installation.AzureQuickDeployment = true;
using IronPdf;
// Optional global configuration (place in Program.cs)
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;
// Enable logging for debugging PDF rendering issues
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All;
Installation.LogFilePath = "IronPdfLog.log";
// Required for Azure App Service deployments
Installation.AzureQuickDeployment = true;
Imports IronPdf
' Optional global configuration
Installation.TempFolderPath = "C:\Temp\IronPdf\"
Installation.LinuxAndDockerDependenciesAutoConfig = True
' Enable logging for debugging PDF rendering issues
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All
Installation.LogFilePath = "IronPdfLog.log"
' Required for Azure App Service deployments
Installation.AzureQuickDeployment = True
Azure デプロイメントの場合、最適なパフォーマンスを得るために AzureQuickDeployment を有効にします。 実稼働環境では、カスタム ログを実装して PDF 生成操作を監視し、レンダリングの失敗を早期に検出します。

HTML 文字列を PDF に変換するにはどうすればよいでしょうか?
IronPDFでの最も基本的な操作は、HTML文字列を直接PDFドキュメントに変換することです。 このアプローチは、 ASP.NETアプリケーションで HTML コンテンツを動的に構築する場合や、HTML テンプレートを操作する場合に最適です。 RenderHtmlAsPdf メソッドは、変数、文字列ビルダー、またはテンプレート エンジンから HTML を変換するための柔軟性を提供します。
// Create a PDF renderer instance
var renderer = new ChromePdfRenderer();
// Configure rendering options for print-quality output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.RenderDelay = 500; // milliseconds to wait before capture
// Convert an HTML string to a PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");
// Save the PDF to disk
pdf.SaveAs("report.pdf");
// Or get binary data to return as a file download
var pdfBytes = pdf.BinaryData;
// Create a PDF renderer instance
var renderer = new ChromePdfRenderer();
// Configure rendering options for print-quality output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.RenderDelay = 500; // milliseconds to wait before capture
// Convert an HTML string to a PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");
// Save the PDF to disk
pdf.SaveAs("report.pdf");
// Or get binary data to return as a file download
var pdfBytes = pdf.BinaryData;
' Create a PDF renderer instance
Dim renderer = New ChromePdfRenderer()
' Configure rendering options for print-quality output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.RenderDelay = 500 ' milliseconds to wait before capture
' Convert an HTML string to a PDF document
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " & DateTime.Now & "</p>")
' Save the PDF to disk
pdf.SaveAs("report.pdf")
' Or get binary data to return as a file download
Dim pdfBytes = pdf.BinaryData
このスニペットは、Chromium エンジンを使用して HTML をレンダリングする ChromePdfRenderer インスタンスを作成します。 RenderHtmlAsPdf メソッドは、任意の有効な HTML 文字列を受け入れ、ディスクに保存したり、ブラウザーにストリームしたりできる PdfDocument オブジェクトを返します。 非同期 PDF 生成の場合、要求スレッドがブロックされないように、呼び出しを Task.Run でラップします。
PDF 出力はどのようになりますか?

CSS スタイルと画像をどのように組み込むのですか?
IronPDF はCSS スタイルを完全にサポートし、HTML を PDF に変換するときにさまざまなソースからの画像を埋め込みます。 レンダラーは、インライン スタイル、外部スタイルシート、Web フォント、SVG グラフィック、および base64 でエンコードされた画像を処理します。
var html = @"
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
.highlight { background-color: #f1c40f; padding: 5px; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table td { border: 1px solid #ddd; padding: 8px; }
</style>
<h1>Monthly Report</h1>
<p>This document includes <span class='highlight'>highlighted text</span> and table data.</p>
<table class='data-table'>
<tr><td>Product</td><td>Sales</td></tr>
<tr><td>Widget A</td><td>$1,234</td></tr>
</table>";
var renderer = new ChromePdfRenderer();
// Set base URL so relative resource paths resolve correctly
renderer.RenderingOptions.BaseUrl = new Uri("https://yourdomain.com/");
renderer.RenderingOptions.EnableJavaScript = true;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-report.pdf");
var html = @"
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
.highlight { background-color: #f1c40f; padding: 5px; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table td { border: 1px solid #ddd; padding: 8px; }
</style>
<h1>Monthly Report</h1>
<p>This document includes <span class='highlight'>highlighted text</span> and table data.</p>
<table class='data-table'>
<tr><td>Product</td><td>Sales</td></tr>
<tr><td>Widget A</td><td>$1,234</td></tr>
</table>";
var renderer = new ChromePdfRenderer();
// Set base URL so relative resource paths resolve correctly
renderer.RenderingOptions.BaseUrl = new Uri("https://yourdomain.com/");
renderer.RenderingOptions.EnableJavaScript = true;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-report.pdf");
Dim html As String = "
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
.highlight { background-color: #f1c40f; padding: 5px; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table td { border: 1px solid #ddd; padding: 8px; }
</style>
<h1>Monthly Report</h1>
<p>This document includes <span class='highlight'>highlighted text</span> and table data.</p>
<table class='data-table'>
<tr><td>Product</td><td>Sales</td></tr>
<tr><td>Widget A</td><td>$1,234</td></tr>
</table>"
Dim renderer As New ChromePdfRenderer()
' Set base URL so relative resource paths resolve correctly
renderer.RenderingOptions.BaseUrl = New Uri("https://yourdomain.com/")
renderer.RenderingOptions.EnableJavaScript = True
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("styled-report.pdf")
レンダラーは、フレックスボックスやグリッド レイアウトなどの CSS3 機能を完全に忠実に処理します。 複雑なレイアウトの場合は、 Bootstrap 互換性ガイダンスを使用するか、CSS page-break-before ルールを使用してカスタム ページ区切りを実装します。
ASP.NET Coreビューを PDF に変換するにはどうすればよいでしょうか?
既存のテンプレートに基づいてレポートを生成する場合、 ASP.NET Coreビュー全体を PDF に変換することが一般的な要件です。 IronPDF は、Razorビュー、 ASPX ページ、さらにはBlazorコンポーネントをサポートしています。
コントローラービューをどのように変換しますか?
コントローラーでビューを HTML 文字列にレンダリングし、それをIronPDFに渡します。 このアプローチは、MVC コア アプリケーションと MVC フレームワーク アプリケーションの両方で機能します。
[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
var invoiceModel = new InvoiceModel
{
InvoiceNumber = 12345,
Date = DateTime.Now,
CustomerName = "Acme Corporation",
Items = new List<InvoiceItem>
{
new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 },
new InvoiceItem { Description = "Support", Quantity = 2, Price = 50.0 }
},
Total = 200.0
};
// Render the Razor view to an HTML string first
var htmlContent = await RenderViewToString("Invoice", invoiceModel);
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Add a text header with the invoice number
renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" + invoiceModel.InvoiceNumber;
renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Restrict copying while allowing printing
pdf.SecuritySettings.AllowUserPrinting = true;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
var fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf";
return File(pdf.BinaryData, "application/pdf", fileName);
}
[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
var invoiceModel = new InvoiceModel
{
InvoiceNumber = 12345,
Date = DateTime.Now,
CustomerName = "Acme Corporation",
Items = new List<InvoiceItem>
{
new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 },
new InvoiceItem { Description = "Support", Quantity = 2, Price = 50.0 }
},
Total = 200.0
};
// Render the Razor view to an HTML string first
var htmlContent = await RenderViewToString("Invoice", invoiceModel);
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Add a text header with the invoice number
renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" + invoiceModel.InvoiceNumber;
renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Restrict copying while allowing printing
pdf.SecuritySettings.AllowUserPrinting = true;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
var fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf";
return File(pdf.BinaryData, "application/pdf", fileName);
}
Imports System
Imports System.Collections.Generic
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc
<HttpGet>
Public Async Function DownloadPdf() As Task(Of IActionResult)
Dim invoiceModel = New InvoiceModel With {
.InvoiceNumber = 12345,
.Date = DateTime.Now,
.CustomerName = "Acme Corporation",
.Items = New List(Of InvoiceItem) From {
New InvoiceItem With {.Description = "Service", .Quantity = 1, .Price = 100.0},
New InvoiceItem With {.Description = "Support", .Quantity = 2, .Price = 50.0}
},
.Total = 200.0
}
' Render the Razor view to an HTML string first
Dim htmlContent = Await RenderViewToString("Invoice", invoiceModel)
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter
renderer.RenderingOptions.PrintHtmlBackgrounds = True
' Add a text header with the invoice number
renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" & invoiceModel.InvoiceNumber
renderer.RenderingOptions.TextHeader.DrawDividerLine = True
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
' Restrict copying while allowing printing
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False
Dim fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf"
Return File(pdf.BinaryData, "application/pdf", fileName)
End Function
この方法では、まずRazorビューを HTML にレンダリングし、次にそれを PDF に変換して、ファイルをブラウザーに返します。 完全なASP.NETパイプラインのないヘッドレス変換シナリオでは、 Razor.Templating.Core の使用を検討してください。
生成されたPDFはどのように見えますか?

URL を PDF に変換するにはどうすればいいですか?
既存のウェブページの場合、 IronPDFは任意のURLを直接PDFファイルに変換できます。この方法は、認証されたリクエストに対してCookieとカスタムHTTPヘッダーをサポートしています。
[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
var renderer = new ChromePdfRenderer();
// Allow time for dynamic content to load before capture
renderer.RenderingOptions.WaitFor.RenderDelay = 2000;
renderer.RenderingOptions.ViewportWidth = 1920;
// Pass authorization headers if the page requires authentication
renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token");
var pdf = renderer.RenderUrlAsPdf("https://yourwebsite.com/report");
// Compress embedded images to reduce file size
pdf.CompressImages(90);
return File(pdf.BinaryData, "application/pdf", "webpage.pdf");
}
[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
var renderer = new ChromePdfRenderer();
// Allow time for dynamic content to load before capture
renderer.RenderingOptions.WaitFor.RenderDelay = 2000;
renderer.RenderingOptions.ViewportWidth = 1920;
// Pass authorization headers if the page requires authentication
renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token");
var pdf = renderer.RenderUrlAsPdf("https://yourwebsite.com/report");
// Compress embedded images to reduce file size
pdf.CompressImages(90);
return File(pdf.BinaryData, "application/pdf", "webpage.pdf");
}
Imports Microsoft.AspNetCore.Mvc
<HttpGet>
Public Function GeneratePdfFromUrl() As IActionResult
Dim renderer = New ChromePdfRenderer()
' Allow time for dynamic content to load before capture
renderer.RenderingOptions.WaitFor.RenderDelay = 2000
renderer.RenderingOptions.ViewportWidth = 1920
' Pass authorization headers if the page requires authentication
renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token")
Dim pdf = renderer.RenderUrlAsPdf("https://yourwebsite.com/report")
' Compress embedded images to reduce file size
pdf.CompressImages(90)
Return File(pdf.BinaryData, "application/pdf", "webpage.pdf")
End Function
このメソッドは、スタイルシート、スクリプト、画像などのすべての外部リソースを処理します。 JavaScript を多用するサイトでは、レンダリング遅延を調整するか、 WaitFor 条件を使用して、特定の DOM イベントが発生した後にのみキャプチャをトリガーします。
URL 変換の結果は何ですか?

PDF 出力をカスタマイズするにはどうすればよいでしょうか?
IronPDF は、HTML から PDF ドキュメントを生成する方法を制御するための広範なカスタマイズ オプションを提供します。 これらの設定は、ページレイアウトと書式設定の特定の要件を満たすプロフェッショナルなファイルを作成するのに役立ちます。 利用可能なレンダリング オプションの全範囲を調べます。
ページのサイズと余白をどのように設定しますか?
プロフェッショナルなドキュメントレイアウトを実現するために、用紙サイズと余白を正確に制御します。
var renderer = new ChromePdfRenderer();
// Set standard paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Set page margins in millimeters
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// Define a custom paper size in inches when needed
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
// Use print CSS media type for print-optimized output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
var renderer = new ChromePdfRenderer();
// Set standard paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Set page margins in millimeters
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// Define a custom paper size in inches when needed
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
// Use print CSS media type for print-optimized output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
Dim renderer = New ChromePdfRenderer()
' Set standard paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
' Set page margins in millimeters
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
' Define a custom paper size in inches when needed
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11)
' Use print CSS media type for print-optimized output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.PrintHtmlBackgrounds = True
標準の用紙サイズを選択したり、カスタム寸法を定義したり、縦向きまたは横向きを設定したり、デザイン要件に合わせて余白を調整したりできます。 方向が必要な場合は、ページの回転オプションを参照してください。
ヘッダーとフッターを追加するにはどうすればよいですか?
一貫したヘッダーとフッターを追加すると、PDF ドキュメントのプロフェッショナルな外観が向上します。 IronPDF は、プレーン テキスト ヘッダーと、埋め込まれた画像と CSS を含む完全な HTML ヘッダーの両方をサポートします。
// Simple text header and footer with dynamic placeholders
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Company Report",
LeftText = "{date}",
RightText = "Confidential",
FontSize = 12,
FontFamily = "Arial",
DrawDividerLine = true
};
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
CenterText = "Page {page} of {total-pages}",
LeftText = "© 2025 Company Name",
DrawDividerLine = true
};
// For complex branded headers, use an HTML fragment instead
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = @"
<div style='display: flex; justify-content: space-between; align-items: center;'>
<img src='logo.png' height='30' />
<h2>Monthly Report</h2>
<span>{date}</span>
</div>",
MaxHeight = 50,
DrawDividerLine = true
};
// Simple text header and footer with dynamic placeholders
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Company Report",
LeftText = "{date}",
RightText = "Confidential",
FontSize = 12,
FontFamily = "Arial",
DrawDividerLine = true
};
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
CenterText = "Page {page} of {total-pages}",
LeftText = "© 2025 Company Name",
DrawDividerLine = true
};
// For complex branded headers, use an HTML fragment instead
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = @"
<div style='display: flex; justify-content: space-between; align-items: center;'>
<img src='logo.png' height='30' />
<h2>Monthly Report</h2>
<span>{date}</span>
</div>",
MaxHeight = 50,
DrawDividerLine = true
};
' Simple text header and footer with dynamic placeholders
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "Company Report",
.LeftText = "{date}",
.RightText = "Confidential",
.FontSize = 12,
.FontFamily = "Arial",
.DrawDividerLine = True
}
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.CenterText = "Page {page} of {total-pages}",
.LeftText = "© 2025 Company Name",
.DrawDividerLine = True
}
' For complex branded headers, use an HTML fragment instead
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.HtmlFragment = "
<div style='display: flex; justify-content: space-between; align-items: center;'>
<img src='logo.png' height='30' />
<h2>Monthly Report</h2>
<span>{date}</span>
</div>",
.MaxHeight = 50,
.DrawDividerLine = True
}
ヘッダーとフッターは、ページ番号、日付、および動的コンテンツ用の特別なプレースホルダーをサポートします。 よりきめ細かな制御を行うために、特定のページに異なるヘッダーを適用することもできます。
ASP.NET PDF 変換のベスト プラクティスは何ですか?
HTML を PDF に変換するときに最適なパフォーマンスと品質を確保するには、次の実証済みのプラクティスに従ってください。 大規模展開向けのパフォーマンス最適化戦略を実装します。
PDF を生成する前に、必ず最初にブラウザで HTML レンダリングをテストして、スタイルとレイアウトを確認してください。 相対パスを使用すると変換中に解決エラーが発生する可能性があるため、外部リソースにはベース URL を使用します。 JavaScript を多用するページの場合は、キャプチャ前に読み込みが完了するようにレンダリング遅延を追加します。
次の例は、構成を一元管理し、非同期生成を処理する再利用可能な PDF サービスを示しています。
public class PdfService
{
private readonly ChromePdfRenderer _renderer;
public PdfService()
{
_renderer = new ChromePdfRenderer();
_renderer.RenderingOptions.RenderDelay = 100;
_renderer.RenderingOptions.Timeout = 60000;
_renderer.RenderingOptions.EnableJavaScript = true;
_renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
}
public async Task<byte[]> GeneratePdfAsync(string html, bool compressImages = false)
{
var pdf = await Task.Run(() => _renderer.RenderHtmlAsPdf(html));
if (compressImages)
{
pdf.CompressImages(90);
}
return pdf.BinaryData;
}
}
public class PdfService
{
private readonly ChromePdfRenderer _renderer;
public PdfService()
{
_renderer = new ChromePdfRenderer();
_renderer.RenderingOptions.RenderDelay = 100;
_renderer.RenderingOptions.Timeout = 60000;
_renderer.RenderingOptions.EnableJavaScript = true;
_renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
}
public async Task<byte[]> GeneratePdfAsync(string html, bool compressImages = false)
{
var pdf = await Task.Run(() => _renderer.RenderHtmlAsPdf(html));
if (compressImages)
{
pdf.CompressImages(90);
}
return pdf.BinaryData;
}
}
Public Class PdfService
Private ReadOnly _renderer As ChromePdfRenderer
Public Sub New()
_renderer = New ChromePdfRenderer()
_renderer.RenderingOptions.RenderDelay = 100
_renderer.RenderingOptions.Timeout = 60000
_renderer.RenderingOptions.EnableJavaScript = True
_renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
End Sub
Public Async Function GeneratePdfAsync(html As String, Optional compressImages As Boolean = False) As Task(Of Byte())
Dim pdf = Await Task.Run(Function() _renderer.RenderHtmlAsPdf(html))
If compressImages Then
pdf.CompressImages(90)
End If
Return pdf.BinaryData
End Function
End Class
サーバーの負荷を軽減するために、頻繁に生成されるドキュメントのキャッシュを実装することを検討してください。 Web アプリケーションのスケーラビリティを向上させるには、非同期メソッドを使用します。 大量のシナリオの場合は、並列処理またはIronPDF をマイクロサービスとしてデプロイすることを検討してください。
実稼働環境にデプロイする場合は、適切な一時フォルダー パスを構成し、ホスティング環境に必要な依存関係がインストールされていることを確認します (特にLinux デプロイの場合)。 Microsoft for .NETガイダンスのIDisposable パターンを使用して、メモリ使用量を監視し、適切な破棄パターンを実装します。 大きな HTML ドキュメントを扱う場合は、ストリーミング アプローチを使用してメモリのオーバーヘッドを最小限に抑えます。
以下の表は、3 つの主な変換方法と、それぞれの使用時期をまとめたものです。
| 方法 | 最適な用途 | キーAPI | 認証サポート |
|---|---|---|---|
| HTML文字列 | コードに組み込まれた動的コンテンツ | `RenderHtmlAsPdf()` | 製品の更新とサポートオプション: |
| Razorビュー | 既存のMVCビューとテンプレート | `RenderHtmlAsPdf()` | セッションコンテキスト |
| URL | 公開または認証されたウェブページ | `RenderUrlAsPdf()` | クッキー、ヘッダー、資格情報 |
PDF 生成プロセスの次のステップは何ですか?
ASP.NET CoreアプリケーションでのASP HTMLからPDFへの変換は、IronPDFを使用することで簡単になります。 ライブラリのChromeベースのレンダリングは、正確な変換を保証し、プロフェッショナルなドキュメント生成のために広範なカスタマイズオプションを提供します。 PDF/A 準拠、デジタル署名、フォーム作成などの高度な機能をご覧ください。
HTML 文字列、URL、または完全なRazorビューを扱う場合でも、 IronPDF は正確な書式設定、CSS スタイル、およびJavaScript の動作を保持します。 完全なドキュメント管理のために、 PDF 圧縮、透かし、メタデータ管理を検討してください。
30日間の無料試用期間を始めることで、ASP.NET CoreアプリケーションでプロフェッショナルなPDF生成を実装できます。 選択が必要ですか? ライセンス オプションを表示するか、チームによるデモを予約してください。

よくある質問
ASP.NET Core で HTML を PDF に変換する最適な方法は何ですか?
ASP.NET CoreでHTMLをPDFに変換する最良の方法は、IronPDFを使用することです。IronPDFは、HTMLコンテンツをシームレスに変換し、高品質のPDFを生成するソリューションを提供します。
HTML を PDF に変換するのに IronPDF を使用する必要があるのはなぜですか?
IronPDFは、正確なレンダリング、CSSとJavaScriptのサポート、複雑なHTMLドキュメントの処理能力など、強力な機能を備えています。そのため、ASP.NETアプリケーションからプロフェッショナルグレードのPDFを生成するのに最適です。
IronPDF は ASP.NET アプリケーション内の動的コンテンツを処理できますか?
はい、IronPDFはASP.NETアプリケーションの動的コンテンツを効果的に処理できます。動的なHTMLコンテンツを処理してPDFに変換するため、請求書、レポート、その他のドキュメントの作成に最適です。
IronPDF を使用して生成された PDF に CSS スタイルを含めることは可能ですか?
はい、IronPDFはCSSスタイルをサポートしています。既存のCSSスタイルシートを適用することで、PDF出力がHTMLコンテンツのデザインとレイアウトと一致するようにすることができます。
IronPDF は HTML から PDF への変換で JavaScript をどのようにサポートしますか?
IronPDF は JavaScript を完全にサポートしているため、結果の PDF に正確にレンダリングされる動的な要素やインタラクティブなコンテンツを HTML に含めることができます。
ASP.NET で HTML を PDF に変換する一般的な使用例は何ですか?
一般的な使用例には、請求書の生成、詳細レポートの作成、証明書の発行、電子書籍やパンフレットなどのダウンロード可能なコンテンツを ASP.NET アプリケーションから直接提供することなどがあります。
ASP.NET用のHTMLからPDFへの変換
IronPDF は、フォント、画像、表、その他の要素を含む HTML コンテンツを正確にレンダリングし、元のデザインの忠実性を維持することで、高品質の PDF 出力を保証します。
ASP.NET MVCのPDFビューアの構築
ASP.NET MVCでPDFを生成


