C#でHTMLをPDFに変換する方法(デベロッパーガイド)
C#でHTMLをPDFに変換することは、実世界の要件が表面化するまでは単純に思えることがよくあります。 開発者は、レンダリングの精度、デプロイメント、スケーラビリティに影響する制限にすぐに遭遇します。
レンダリングだけでなく、インフラの互換性も重要です。 チームは、最新の.NETランタイム、クラウドプラットフォーム、コンテナ化された環境において、パフォーマンスを犠牲にすることなくPDF生成が機能することを保証しなければなりません。
このようなギャップを解決するために、IronPDFのような最新のChromeベースのソリューションは、より高いレンダリング忠実度、より幅広いプラットフォームサポート、そして本番環境に対応したデプロイワークフローを提供します。
TL;DR: HTML を PDF に変換するためのクイックスタート ガイド
IronPDFライブラリを使用すると、HTML、CSS、 JavaScriptから高品質のPDFファイルを作成するChromePdfRenderer.RenderHtmlAsPdfメソッドを使用して、C#でHTMLをPDFに簡単に変換できます。
IronPDFを購入するか、30日間の試用版にサインアップした後、メールで送信されたライセンスキーを見つけてください。 アプリケーションの開始でライセンスキーを追加してください。
IronPdf.License.LicenseKey = "KEY";
IronPdf.License.LicenseKey = "KEY";
Imports IronPdf
IronPdf.License.LicenseKey = "KEY"
NET 開発者が C# 用の HTML から PDF へのコンバーターを必要とする理由
IronPDFは埋め込みのGoogle Chromiumレンダリングエンジンを活用して高忠実度の変換を保証し、Webコンテンツのレイアウトとスタイリングを正確に保持します。
✅ 強力なChromeレンダリングエンジン: 正確なHTMLからPDFへの変換のためのChromeのBlinkエンジンで、メモリ、フォーム、レンダリングの精度を向上させました (v2025.9.4)
✅ ピクセル・パーフェクトな精度: 生成されたPDFは、プリントフレンドリーなバージョンではなく、Webと正確に一致します。 最近の修正はカスタムヘッダー/フッターのクリッピング、グレースケールテキストの保持、メタデータ内の特殊文字/絵文字までカバーしています (v2025.9.4現在)
✅ 最新のWebサポート完備: すべてのHTML要素に対する完全なCSS3、HTML5、JavaScriptサポート。 最近の強化には、長いテキストエリアやチェックボックスのフォームフィールド処理が含まれています。
✅ 5-20倍のパフォーマンス向上: ブラウザ自動化やWebドライバーよりも大幅に高速で、メモリリーク修正とスタンプ/ヘッダーのような繰り返される要素のバッチ操作でのファイルサイズ削減を実現。
✅ PDF/UA準拠: セクション508標準を満たすアクセシブルPDF生成を提供し、クロスプラットフォーム (例: Linux) フォームレンダリングの向上を実現。
✅ 外部依存関係なし: サーバーにインストールする実行可能ファイルはありません
✅ C#、F#、VB.NET上で.NET 10、9、8、7、6、Core、Standard、またはFrameworkで実行されます
IronPDFは.NET開発者にプロフェッショナルな外観のPDFドキュメントをWebアプリケーションのHTMLから生成するための簡単で効率的なソリューションを提供し、プロセスを簡素化します。 請求書やレポートから証明書やアーカイブまで、開発者は馴染みのあるWebスタックで作業でき、IronPDFが複雑な処理をわずか数行のコードで行います。
RELATED: IronPDF Changelog: Updates, milestones, roadmap
学習内容
- [HTML文字列をPDFに変換する方法](#how-to-convert-html-string-to-pdf)。
- [既存のURLをPDFにエクスポートする方法](#how-to-export-existing-url-to-pdf)。
- [HTMLファイルをPDFに変換する方法](#how-to-convert-html-file-to-pdf)。
- [RazorページをPDFに変換する方法](#how-to-convert-razor-pages-to-pdf)
- [MVCビューをPDFに変換する方法](#how-to-convert-mvc-views-to-pdf)
- [バッチPDF作成のためのHTMLテンプレートを生成する方法](#how-to-generate-html-template-for-batch-PDF-creation)。
- [非同期メソッドを使用してPDFを生成する方法](#how-to-generate-pdf-using-async-method)。
- [高度なセキュリティ機能を追加する方法](#how-to-add-advanced-security-features)。
- [HTMLフォームを記入可能なPDFに変換する方法](#how-to-convert-html-forms-to-fillable-pdfs)
- [特定のHTML要素をPDFに変換する方法](#how-to-convert-specific-html-elements-to-pdf)
- [認証されたページをPDFにレンダリングする方法](#how-to-render-authenticated-pages-to-pdf)
1. How to Convert HTML to PDF C
HTML文字列、URL、HTMLファイルを操作しているかどうかにかかわらず、IronPDFはあなたの特定の要件に応じて高品質なPDFドキュメントを生成する柔軟なオプションを提供します。
このチュートリアルでは、HTML文字列からPDF、URLからPDF、HTMLファイルからPDFを含む最も一般的なシナリオを通じて案内します。 さらに、IronPDFはPDFドキュメントを操作するためのさまざまな操作も提供します:
| 多用途PDF変換 | 動的ウェブページからPDFへの変換 |
|---|---|
HTML文字列をPDFに変換する方法
最も基本的な操作は、HTML 文字列を PDF に変換することです。 このメソッドは、動的に生成された HTML コンテンツに最適です。 RenderHtmlAsPdf メソッドは、HTML を PDF に直接変換する際に、HTML5、CSS3、 JavaScript、および画像を完全にサポートします。
using IronPDF;
// Create the Chrome renderer
var renderer = new ChromePdfRenderer();
// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
// Save the PDF
pdf.SaveAs("output.pdf");
using IronPDF;
// Create the Chrome renderer
var renderer = new ChromePdfRenderer();
// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
// Save the PDF
pdf.SaveAs("output.pdf");
Imports IronPDF
' Create the Chrome renderer
Dim renderer As New ChromePdfRenderer()
' Convert HTML string to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")
' Save the PDF
pdf.SaveAs("output.pdf")
HTML文字列が画像やスタイルシートなどのローカルアセットを参照している場合は、BaseUrlPath パラメータを使用して、すべてのリソースを含むHTMLコンテンツを適切に変換します。
using IronPDF;
var renderer = new ChromePdfRenderer();
// Convert HTML content with local image and CSS references
string html = @"
<link rel='stylesheet' href='styles.css'>
<img src='logo.png' alt='Company Logo'>
<h1>Company Report</h1>
<p>Annual report content...</p>";
// Set base path for resolving relative URLs in HTML to PDF conversion
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\MyProject\Assets\");
pdf.SaveAs("report.pdf");
using IronPDF;
var renderer = new ChromePdfRenderer();
// Convert HTML content with local image and CSS references
string html = @"
<link rel='stylesheet' href='styles.css'>
<img src='logo.png' alt='Company Logo'>
<h1>Company Report</h1>
<p>Annual report content...</p>";
// Set base path for resolving relative URLs in HTML to PDF conversion
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\MyProject\Assets\");
pdf.SaveAs("report.pdf");
Imports IronPDF
Dim renderer As New ChromePdfRenderer()
' Convert HTML content with local image and CSS references
Dim html As String = "
<link rel='stylesheet' href='styles.css'>
<img src='logo.png' alt='Company Logo'>
<h1>Company Report</h1>
<p>Annual report content...</p>"
' Set base path for resolving relative URLs in HTML to PDF conversion
Dim pdf = renderer.RenderHtmlAsPdf(html, "C:\MyProject\Assets\")
pdf.SaveAs("report.pdf")
RELATED HOW-TO ARTICLE: How to Convert HTML String to PDF in C#
このアプローチでは、指定された任意のURLを直接PDF形式に変換できます。
印刷とスクリーンのCSS IronPDFを構成して、どちらのCSSメディアタイプでもレンダリングできます。
JavaScriptサポート
IronPDF を構成して、CSS メディアタイプのいずれかを使用してレンダリングできます。
using IronPDF;
using IronPdf.Rendering;
// Initialize HTML to PDF converter
var renderer = new ChromePdfRenderer();
// Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Screen media type shows the entire web page as displayed on screen
using IronPDF;
using IronPdf.Rendering;
// Initialize HTML to PDF converter
var renderer = new ChromePdfRenderer();
// Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Screen media type shows the entire web page as displayed on screen
Imports IronPDF
Imports IronPdf.Rendering
' Initialize HTML to PDF converter
Dim renderer As New ChromePdfRenderer()
' Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Screen media type shows the entire web page as displayed on screen
動的なHTMLコンテンツ用には、IronPDFを設定してJavaScriptが完了するのを待機してからWebページをPDFにレンダリングすることができます。
これはシングルページアプリケーションや動的Webサイトに最適です。 動的HTMLコンテンツの場合、IronPDFを構成してJavaScriptの完了を待ってからウェブページをPDFにレンダリングできます。 これはシングルページアプリケーションや動的ウェブサイトに最適です。
using IronPDF;
// Configure JavaScript rendering for dynamic HTML content to PDF
var renderer = new ChromePdfRenderer();
// Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = true;
// WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
using IronPDF;
// Configure JavaScript rendering for dynamic HTML content to PDF
var renderer = new ChromePdfRenderer();
// Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = true;
// WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
Imports IronPDF
' Configure JavaScript rendering for dynamic HTML content to PDF
Dim renderer As New ChromePdfRenderer()
' Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = True
' WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500 ' milliseconds
レスポンシブなWebページはブラウザで見るために設計されており、IronPDFはサーバーのOSで実ブラウザウィンドウを開かないため、レスポンシブHTML要素は最小サイズでレンダリングされることがあります。 PdfCssMediaType.Print はWebページ全体をレンダリングする際にこの問題をナビゲートするのにお勧めです。
using IronPDF;
// Create renderer for JavaScript-heavy HTML
var renderer = new ChromePdfRenderer();
// Convert d3.js visualization web page to PDF
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");
// Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf");
using IronPDF;
// Create renderer for JavaScript-heavy HTML
var renderer = new ChromePdfRenderer();
// Convert d3.js visualization web page to PDF
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");
// Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf");
Imports IronPDF
' Create renderer for JavaScript-heavy HTML
Dim renderer As New ChromePdfRenderer()
' Convert d3.js visualization web page to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006")
' Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf")
レスポンシブCSS
レスポンシブウェブページはブラウザでの表示を前提として設計されていますが、 IronPDFはサーバーのOS上で実際のブラウザウィンドウを開かないため、レスポンシブHTML要素は最小サイズでレンダリングされる場合があります。ウェブページ全体をレンダリングする際にこの問題を回避するには、PdfCssMediaType.Print を使用することをお勧めします。
// Configure for optimal responsive design handling in HTML to PDF
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Configure for optimal responsive design handling in HTML to PDF
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
```vbnet
' Configure for optimal responsive design handling in HTML to PDF
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
```
RELATED HOW-TO ARTICLE: How to Render URL to PDF
HTMLファイルをPDFに変換する方法
ローカルの HTML ファイルを PDF に変換すると、file:// プロトコルを使用して開いたかのように、CSS、画像、JavaScript など、すべての相対アセットが保持されます。 関連の記事: HTMLファイルをPDFにレンダリング
using IronPDF;
// Initialize ChromePdfRenderer for HTML file conversion
var renderer = new ChromePdfRenderer();
// Convert HTML file to PDF documents
// Preserves all relative paths and linked resources in HTML
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
// Save the HTML file as PDF
pdf.SaveAs("Invoice.pdf");
// All CSS, JavaScript, and images load correctly in the generated PDF
using IronPDF;
// Initialize ChromePdfRenderer for HTML file conversion
var renderer = new ChromePdfRenderer();
// Convert HTML file to PDF documents
// Preserves all relative paths and linked resources in HTML
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
// Save the HTML file as PDF
pdf.SaveAs("Invoice.pdf");
// All CSS, JavaScript, and images load correctly in the generated PDF
Imports IronPDF
' Initialize ChromePdfRenderer for HTML file conversion
Dim renderer As New ChromePdfRenderer()
' Convert HTML file to PDF documents
' Preserves all relative paths and linked resources in HTML
Dim pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html")
' Save the HTML file as PDF
pdf.SaveAs("Invoice.pdf")
' All CSS, JavaScript, and images load correctly in the generated PDF
2. HTMLからPDFへの設定を構成する方法 PDFドキュメントを操作する際、IronPDFは、レンダリングされたPDFに対するChromePdfRenderer.RenderingOptionsプロパティを通じて広範囲なカスタマイズを提供します
RELATED HOW-TO Article: Render HTML File to PDF
RazorページをPDFに変換する方法
既にRazorページを使用しているASP.NET Coreプロジェクトがある場合、そのHTMLを再構築することなく直接PDFに変換できます。 IronPDFのRazor拡張機能を利用することで、RenderRazorToPdfメソッドを使用し、.cshtmlページをモデルとレイアウト込みでPDFドキュメントとしてレンダリングすることができます。
PM > Install-Package IronPdf.Extensions.Razor
PM > Install-Package IronPdf.Extensions.Razor
using IronPDF;
var renderer = new ChromePdfRenderer();
// Render a Razor Page directly to PDF
PdfDocument pdf = renderer.RenderRazorToPdf(this);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
using IronPDF;
var renderer = new ChromePdfRenderer();
// Render a Razor Page directly to PDF
PdfDocument pdf = renderer.RenderRazorToPdf(this);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
Imports IronPDF
Dim renderer As New ChromePdfRenderer()
' Render a Razor Page directly to PDF
Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)
Response.Headers.Add("Content-Disposition", "inline")
Return New FileContentResult(pdf.BinaryData, "application/pdf")
RELATED HOW-TO Article: How to Convert CSHTML to PDF in Razor Pages
MVCビューをPDFに変換する方法
MVCパターンを使用するチームは、既存のビューやコントローラーから直接PDFを生成できます。 MVC Core 拡張パッケージをインストールしてから、ビュー パスとモデルを指定して RenderRazorViewToPdf を呼び出します。IronPDFはRazorレンダリング パイプラインを処理し、完成した PDF を出力します。
特にレポートや請求書、ブラウザで既に設計およびテストされたページに便利です。 生成されたPDFは、レイアウトページや部分視図を含むビューの出力全体を保持します。
PM > Install-Package IronPdf.Extensions.Mvc.Core
PM > Install-Package IronPdf.Extensions.Mvc.Core
まず、Program.cs に IRazorViewRenderer サービスを登録して、コントローラがそれを注入できるようにします。
using IronPdf.Extensions.Mvc.Core;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Register the Razor view renderer for IronPDF
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
using IronPdf.Extensions.Mvc.Core;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Register the Razor view renderer for IronPDF
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
Imports IronPdf.Extensions.Mvc.Core
Dim builder = WebApplication.CreateBuilder(args)
builder.Services.AddControllersWithViews()
' Register the Razor view renderer for IronPDF
builder.Services.AddSingleton(Of IHttpContextAccessor, HttpContextAccessor)()
builder.Services.AddSingleton(Of IRazorViewRenderer, RazorViewRenderer)()
次に、コントローラーアクションでレンダラーを注入し、任意のビューをPDFに変換します。
using IronPDF;
using IronPdf.Extensions.Mvc.Core;
var renderer = new ChromePdfRenderer();
// Render an MVC View with model data to PDF
PdfDocument pdf = renderer.RenderRazorViewToPdf(
_viewRenderService, "Views/Home/Report.cshtml", reportModel);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
using IronPDF;
using IronPdf.Extensions.Mvc.Core;
var renderer = new ChromePdfRenderer();
// Render an MVC View with model data to PDF
PdfDocument pdf = renderer.RenderRazorViewToPdf(
_viewRenderService, "Views/Home/Report.cshtml", reportModel);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
Imports IronPDF
Imports IronPdf.Extensions.Mvc.Core
Dim renderer As New ChromePdfRenderer()
' Render an MVC View with model data to PDF
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Report.cshtml", reportModel)
Response.Headers.Add("Content-Disposition", "inline")
Return New FileContentResult(pdf.BinaryData, "application/pdf")
RELATED HOW-TO Article: How to Convert Views to PDF in ASP.NET Core MVC
2. HTML から PDF への設定を構成する方法
PDF ドキュメントの操作に関して、 IronPDF はレンダリングされた PDF の ChromePdfRenderer.RenderingOptions プロパティを通じて広範なカスタマイズを提供します。
| 設定 | 概要 | 例 |
|---|---|---|
| 用紙サイズ | 既存のPDFのページ寸法を設定する(A4、レター、リーガルなど)。 | `PdfPaperSize.A4` |
| 用紙の向き | 既存のPDFに縦書きまたは横書きを設定する。 | `PdfPaperOrientation.Landscape` |
| マージントップ/ボトム/レフト/ライト | ページの余白をミリメートル単位で設定します(デフォルト:25mm)。 | |
| CssMediaType | HTMLからPDFへのスクリーンまたは印刷CSS | `PdfCssMediaType.Print` |
| PrintHtmlBackgrounds | 背景色/画像を含める (デフォルト: true)。 | 真実 |
| JavaScriptを有効にする | HTMLコンテンツをレンダリングする前にJavaScriptを実行する。 | 真実 |
| WaitFor.RenderDelay。 | ダイナミックHTMLコンテンツの待ち時間(ms) | 500 |
PDF ドキュメントを操作するための完全な構成例については、このコードスニペットをご覧ください:
using IronPDF;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// Generate PDFs with all settings applied to HTML content
var htmlContent = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>";
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
pdfDocument.SaveAs("styled-output.pdf");
using IronPDF;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// Generate PDFs with all settings applied to HTML content
var htmlContent = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>";
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
pdfDocument.SaveAs("styled-output.pdf");
Imports IronPDF
Imports IronPdf.Rendering
Dim renderer As New ChromePdfRenderer()
' Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50
' Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = True
' Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
' Generate PDFs with all settings applied to HTML content
Dim htmlContent As String = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>"
Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
pdfDocument.SaveAs("styled-output.pdf")
これらのPDF操作方法により、スケールでPDFドキュメントを作成し、機密PDFファイルを保護し、HTMLからプロフェッショナルなPDF形式に変換するときにドキュメントの信頼性を保証することができます。
| テーラーPDF変換 | PDFレイアウトを改善 |
|---|---|
カスタムHTTPヘッダー、クッキー、およびログイン認証情報を設定する方法
認証が必要なURLや特定のリクエストメタデータをレンダリングする場合、IronPDFを使用してログイン認証情報、セッションクッキー、およびHTTPヘッダーをリクエストに含めることができます。これにより、イントラネットダッシュボード、制限付きレポート、またはAPI生成されたページのHTMLを別途取得することなく直接PDFにレンダリングできます。
基本認証または NTLM 認証の場合は、レンダラーに LoginCredentials オブジェクトを設定します。 トークンベースまたはセッションベースのアクセスの場合、RenderUrlAsPdf を呼び出す前に、RenderingOptions を介してクッキーとヘッダーを渡します。
using IronPDF;
var renderer = new ChromePdfRenderer();
// Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword"
};
// Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123";
// Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/quarterly-report");
pdf.SaveAs("quarterly-report.pdf");
using IronPDF;
var renderer = new ChromePdfRenderer();
// Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword"
};
// Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123";
// Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/quarterly-report");
pdf.SaveAs("quarterly-report.pdf");
Imports IronPDF
Dim renderer As New ChromePdfRenderer()
' Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = New ChromeHttpLoginCredentials With {
.NetworkUsername = "user@domain.com",
.NetworkPassword = "securePassword"
}
' Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies("sessionId") = "abc123"
' Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders("Authorization") = "Bearer eyJhbGciOi..."
Dim pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/quarterly-report")
pdf.SaveAs("quarterly-report.pdf")
これらのPDF操作方法により、スケールでPDFドキュメントを作成し、機密PDFファイルを保護し、HTMLからプロフェッショナルなPDF形式に変換するときにドキュメントの信頼性を保証することができます。 Render PDFs Behind Login Authentication | Custom HTTP Request Headers
PDFレンダリング用のプロキシを設定する方法
企業プロキシの背後にある外部リソースを読み込む HTML をレンダリングする場合、プロキシ アドレスを RenderHtmlAsPdf() の 3 番目のパラメータとして渡します。 これはメソッドパラメータであり、ChromePdfRenderOptions のプロパティではないため、レンダラーインスタンスではなく、レンダラー呼び出しごとに設定されます。
認証付きプロキシの場合は、http://user:pass@host:port の形式を使用して、認証情報を URL に直接埋め込んでください。 パスワード内の特殊文字を Uri.EscapeDataString() を使用して URL エンコードします。
using IronPDF;
var renderer = new ChromePdfRenderer();
// Proxy is the third parameter — not a render option
PdfDocument pdf = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath: null,
proxy: "http://proxy.corp.local:8080"
);
pdf.SaveAs("proxied-report.pdf");
using IronPDF;
var renderer = new ChromePdfRenderer();
// Proxy is the third parameter — not a render option
PdfDocument pdf = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath: null,
proxy: "http://proxy.corp.local:8080"
);
pdf.SaveAs("proxied-report.pdf");
Imports IronPDF
Dim renderer As New ChromePdfRenderer()
' Proxy is the third parameter — not a render option
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath:=Nothing,
proxy:="http://proxy.corp.local:8080"
)
pdf.SaveAs("proxied-report.pdf")
RenderUrlAsPdf() はプロキシ パラメータを受け付けないことに注意してください。 プロキシの背後でライブ URL をレンダリングするには、まず HttpClient で WebProxy が設定された HTML を取得し、次にそれをプロキシ パラメータとともに RenderHtmlAsPdf() に渡してアセットをロードします。
RELATED HOW-TO Article: How to Configure Proxy Servers for PDF Rendering
基本的なバッチPDF作成
高度なテンプレート、非同期操作、およびセキュリティ機能を使用して、HTMLからPDFへの変換のエンタープライズレベルの機能をアンロックします。 これらのPDF操作メソッドを使用すると、スケールでPDF文書を作成し、機密PDFファイルを保護し、HTMLをプロフェッショナルなPDF形式に変換する際に文書の真正性を確保できます。
バッチPDF作成のためのHTMLテンプレートの生成方法
基本的なバッチ PDF 作成
バッチPDF作成は、複数のパーソナライズされたPDF文書を効率的に生成するために不可欠です。 基本的なシナリオでは、C# の String.Format メソッドが、単純な PDF 操作に最適です。
// Simple HTML templating with String.Format
string htmlTemplate = String.Format("<h1>Hello {0}!</h1>", "World");
// Results in HTML content: <h1>Hello World!</h1>
// Simple HTML templating with String.Format
string htmlTemplate = String.Format("<h1>Hello {0}!</h1>", "World");
// Results in HTML content: <h1>Hello World!</h1>
' Simple HTML templating with String.Format
Dim htmlTemplate As String = String.Format("<h1>Hello {0}!</h1>", "World")
' Results in HTML content: <h1>Hello World!</h1>
PDF文書を生成する必要がある場合は、HTMLコンテンツでプレースホルダーの置き換えを使用します: using IronPDF;
// Define reusable HTML template for PDF files
var htmlTemplate = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>";
// Customer names for batch PDF conversion processing
var names = new[] { "John", "James", "Jenny" };
// Create personalized PDF documents for each customer
var renderer = new ChromePdfRenderer();
foreach (var name in names)
{
// Replace placeholder with actual data in HTML string
var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);
// Generate personalized PDF document from HTML content
var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
// Save with customer-specific filename as PDF files
pdf.SaveAs($"{name}-invoice.pdf");
}
// Define reusable HTML template for PDF files
var htmlTemplate = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>";
// Customer names for batch PDF conversion processing
var names = new[] { "John", "James", "Jenny" };
// Create personalized PDF documents for each customer
var renderer = new ChromePdfRenderer();
foreach (var name in names)
{
// Replace placeholder with actual data in HTML string
var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);
// Generate personalized PDF document from HTML content
var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
// Save with customer-specific filename as PDF files
pdf.SaveAs($"{name}-invoice.pdf");
}
' Define reusable HTML template for PDF files
Dim htmlTemplate As String = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>"
' Customer names for batch PDF conversion processing
Dim names As String() = {"John", "James", "Jenny"}
' Create personalized PDF documents for each customer
Dim renderer As New ChromePdfRenderer()
For Each name In names
' Replace placeholder with actual data in HTML string
Dim htmlInstance As String = htmlTemplate.Replace("[[NAME]]", name)
' Generate personalized PDF document from HTML content
Dim pdf = renderer.RenderHtmlAsPdf(htmlInstance)
' Save with customer-specific filename as PDF files
pdf.SaveAs($"{name}-invoice.pdf")
Next
非同期メソッドを使用してPDFを生成する方法
HTML を PDF に変換する際に、ループや条件分岐を含む複雑なテンプレートを使用する場合は、Handlebars.NET を使用した高度なテンプレート機能を使用して、動的な HTML コンテンツを含む PDF ドキュメントを生成します。
# First, install Handlebars.NET for HTML to PDF templating
PM > Install-Package Handlebars.NET
# First, install Handlebars.NET for HTML to PDF templating
PM > Install-Package Handlebars.NET
using HandlebarsDotNet;
using IronPDF;
// Define Handlebars template with placeholders for HTML content
var source =
@"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>";
// Compile template for reuse in PDF conversion
var template = Handlebars.Compile(source);
// Create data object (can be database records) for HTML to PDF directly
var data = new {
title = "Monthly Report",
body = "Sales increased by 15% this month."
};
// Merge template with data to create HTML content
var htmlResult = template(data);
// Convert templated HTML to PDF using the PDF converter
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlResult);
pdf.SaveAs("monthly-report.pdf");
using HandlebarsDotNet;
using IronPDF;
// Define Handlebars template with placeholders for HTML content
var source =
@"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>";
// Compile template for reuse in PDF conversion
var template = Handlebars.Compile(source);
// Create data object (can be database records) for HTML to PDF directly
var data = new {
title = "Monthly Report",
body = "Sales increased by 15% this month."
};
// Merge template with data to create HTML content
var htmlResult = template(data);
// Convert templated HTML to PDF using the PDF converter
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlResult);
pdf.SaveAs("monthly-report.pdf");
Imports HandlebarsDotNet
Imports IronPDF
' Define Handlebars template with placeholders for HTML content
Dim source As String =
"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>"
' Compile template for reuse in PDF conversion
Dim template = Handlebars.Compile(source)
' Create data object (can be database records) for HTML to PDF directly
Dim data = New With {
.title = "Monthly Report",
.body = "Sales increased by 15% this month."
}
' Merge template with data to create HTML content
Dim htmlResult = template(data)
' Convert templated HTML to PDF using the PDF converter
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlResult)
pdf.SaveAs("monthly-report.pdf")
RELATED HOW-TO ARTICLE: Learn more about Handlebars.NET on GitHub
PDFの改ページを制御する:
HTMLスニペットを変換する際、生成されたPDFドキュメントでページネーションを管理することで、プロフェッショナルで読みやすいレイアウトを確保できます。CSSを使用して、PDFファイルのどこでページが分割されるかを制御します。<!DOCTYPE html>
<html>
<head>
<style type="text/css" media="print">
.page {
page-break-after: always;
page-break-inside: avoid;
}
</style>
</head>
<body>
<div class="page">
<h1>Page 1 Content</h1>
</div>
<div class="page">
<h1>Page 2 Content</h1>
</div>
<div class="page">
<h1>Page 3 Content</h1>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style type="text/css" media="print">
.page {
page-break-after: always;
page-break-inside: avoid;
}
</style>
</head>
<body>
<div class="page">
<h1>Page 1 Content</h1>
</div>
<div class="page">
<h1>Page 2 Content</h1>
</div>
<div class="page">
<h1>Page 3 Content</h1>
</div>
</body>
</html>
非同期メソッドを使用してPDFを生成する方法
IronPDFは、スケールでPDFファイルを生成する必要がある場合のHTMLからPDFへの変換要件に対して、完全な非同期およびマルチスレッドサポートを提供するエンタープライズグレードのパフォーマンスを実現します。
using IronPDF;
using System.Threading.Tasks;
// Async method for non-blocking PDF generation from HTML content
public async Task<byte[]> GeneratePdfAsync(string html)
{
var renderer = new ChromePdfRenderer();
// Async HTML to PDF conversion preserves thread pool
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
// Return PDF files as byte array for web responses
return pdf.BinaryData;
}
// Concurrent batch PDF generation for multiple HTML strings
public async Task GenerateMultiplePdfsAsync(List<string> htmlテンプレート)
{
var renderer = new ChromePdfRenderer();
// Create parallel conversion tasks to generate PDF documents
var tasks = htmlテンプレート.Select(html =>
renderer.RenderHtmlAsPdfAsync(html)
);
// Await all PDF conversions simultaneously
var pdfs = await Task.WhenAll(tasks);
// Save generated PDF files from HTML content
for (int i = 0; i < pdfs.Length; i++)
{
pdfs[i].SaveAs($"document-{i}.pdf");
}
}
using IronPDF;
using System.Threading.Tasks;
// Async method for non-blocking PDF generation from HTML content
public async Task<byte[]> GeneratePdfAsync(string html)
{
var renderer = new ChromePdfRenderer();
// Async HTML to PDF conversion preserves thread pool
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
// Return PDF files as byte array for web responses
return pdf.BinaryData;
}
// Concurrent batch PDF generation for multiple HTML strings
public async Task GenerateMultiplePdfsAsync(List<string> htmlテンプレート)
{
var renderer = new ChromePdfRenderer();
// Create parallel conversion tasks to generate PDF documents
var tasks = htmlテンプレート.Select(html =>
renderer.RenderHtmlAsPdfAsync(html)
);
// Await all PDF conversions simultaneously
var pdfs = await Task.WhenAll(tasks);
// Save generated PDF files from HTML content
for (int i = 0; i < pdfs.Length; i++)
{
pdfs[i].SaveAs($"document-{i}.pdf");
}
}
Imports IronPDF
Imports System.Threading.Tasks
' Async method for non-blocking PDF generation from HTML content
Public Async Function GeneratePdfAsync(html As String) As Task(Of Byte())
Dim renderer As New ChromePdfRenderer()
' Async HTML to PDF conversion preserves thread pool
Dim pdf = Await renderer.RenderHtmlAsPdfAsync(html)
' Return PDF files as byte array for web responses
Return pdf.BinaryData
End Function
' Concurrent batch PDF generation for multiple HTML strings
Public Async Function GenerateMultiplePdfsAsync(htmlテンプレート As List(Of String)) As Task
Dim renderer As New ChromePdfRenderer()
' Create parallel conversion tasks to generate PDF documents
Dim tasks = htmlテンプレート.Select(Function(html) renderer.RenderHtmlAsPdfAsync(html))
' Await all PDF conversions simultaneously
Dim pdfs = Await Task.WhenAll(tasks)
' Save generated PDF files from HTML content
For i As Integer = 0 To pdfs.Length - 1
pdfs(i).SaveAs($"document-{i}.pdf")
Next
End Function
- 最適なPDF生成パフォーマンスのために64ビットシステムを使用してください。
- PDF ドキュメントを生成する際には十分なサーバーリソースを確保します(パワー不足の無料プランを避ける)
- HTML コンテンツの複雑な JavaScript に対して、十分な RenderDelay を許可します。
- 可能な場合は、
ChromePdfRendererインスタンスを再利用してください。 - バッチ/非同期操作のリソース使用量を削減するために v2025.9.4 メモリ修正を活用します; カスタムヘッダー/フッターを繰り返して、ファイルサイズの削減をテストします。
RELATED HOW-TO Article: How to Generate PDFs with Async and Multithreading
高度なセキュリティ機能を追加する方法
.NETでPDFファイルにパスワード保護を追加する方法
HTMLコンテンツを保護されたPDF形式に変換する際に、パスワードと権限で生成された機密PDF文書を保護します。
using IronPDF;
var renderer = new ChromePdfRenderer();
// Convert HTML to PDF with security
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>");
// Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123"; // Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456"; // Password to modify PDF files
// Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint;
// Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256;
pdf.SaveAs("secure-document.pdf");
using IronPDF;
var renderer = new ChromePdfRenderer();
// Convert HTML to PDF with security
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>");
// Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123"; // Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456"; // Password to modify PDF files
// Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint;
// Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256;
pdf.SaveAs("secure-document.pdf");
Imports IronPDF
Dim renderer As New ChromePdfRenderer()
' Convert HTML to PDF with security
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>")
' Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123" ' Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456" ' Password to modify PDF files
' Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint
' Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256
pdf.SaveAs("secure-document.pdf")
PDFファイルにデジタル署名を追加する方法
HTMLコンテンツからPDFファイルを生成する際に、PDF文書の真正性を確保するために暗号署名を追加します。
using IronPDF;
using IronPdf.Signing;
var renderer = new ChromePdfRenderer();
// Generate PDF from HTML page
var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");
// Create digital signature with certificate for PDF files
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningContact = "legal@company.com",
SigningLocation = "New York, NY",
SigningReason = "Contract Approval",
SignerName = "Authorized Signer" // New property in v2025.8.8 for enhanced signature details
};
// Apply signature to PDF documents
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");
using IronPDF;
using IronPdf.Signing;
var renderer = new ChromePdfRenderer();
// Generate PDF from HTML page
var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");
// Create digital signature with certificate for PDF files
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningContact = "legal@company.com",
SigningLocation = "New York, NY",
SigningReason = "Contract Approval",
SignerName = "Authorized Signer" // New property in v2025.8.8 for enhanced signature details
};
// Apply signature to PDF documents
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");
Imports IronPDF
Imports IronPdf.Signing
Dim renderer As New ChromePdfRenderer()
' Generate PDF from HTML page
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>")
' Create digital signature with certificate for PDF files
Dim signature As New PdfSignature("certificate.pfx", "password") With {
.SigningContact = "legal@company.com",
.SigningLocation = "New York, NY",
.SigningReason = "Contract Approval",
.SignerName = "Authorized Signer" ' New property in v2025.8.8 for enhanced signature details
}
' Apply signature to PDF documents
pdf.Sign(signature)
pdf.SaveAs("signed-contract.pdf")
RELATED HOW-TO Article: Digitally Signing PDF Documents with C#
HTMLフォームを記入可能なPDFに変換する方法
標準の HTML フォーム要素を、対話型で入力可能な PDF フォームフィールドに変換するには、CreatePdfFormsFromHtml レンダリング オプションを有効にします。 これにより、生成されたPDFドキュメント内でテキスト入力、チェックボックス、ラジオボタン、ドロップダウンメニューが編集可能なフィールドとして保持されます。
using IronPDF;
var renderer = new ChromePdfRenderer();
// Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string htmlForm = @"
<h2>Employee Onboarding Form</h2>
<form>
<label>Full Name:</label>
<input type='text' name='fullName' value='' /><br/>
<label>Department:</label>
<select name='department'>
<option value='engineering'>Engineering</option>
<option value='marketing'>Marketing</option>
<option value='sales'>Sales</option>
</select><br/>
<label>Agree to Terms:</label>
<input type='checkbox' name='agreeTerms' />
</form>";
var pdf = renderer.RenderHtmlAsPdf(htmlForm);
pdf.SaveAs("onboarding-form.pdf");
using IronPDF;
var renderer = new ChromePdfRenderer();
// Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string htmlForm = @"
<h2>Employee Onboarding Form</h2>
<form>
<label>Full Name:</label>
<input type='text' name='fullName' value='' /><br/>
<label>Department:</label>
<select name='department'>
<option value='engineering'>Engineering</option>
<option value='marketing'>Marketing</option>
<option value='sales'>Sales</option>
</select><br/>
<label>Agree to Terms:</label>
<input type='checkbox' name='agreeTerms' />
</form>";
var pdf = renderer.RenderHtmlAsPdf(htmlForm);
pdf.SaveAs("onboarding-form.pdf");
Imports IronPDF
Dim renderer = New ChromePdfRenderer()
' Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
Dim htmlForm As String = "
<h2>Employee Onboarding Form</h2>
<form>
<label>Full Name:</label>
<input type='text' name='fullName' value='' /><br/>
<label>Department:</label>
<select name='department'>
<option value='engineering'>Engineering</option>
<option value='marketing'>Marketing</option>
<option value='sales'>Sales</option>
</select><br/>
<label>Agree to Terms:</label>
<input type='checkbox' name='agreeTerms' />
</form>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlForm)
pdf.SaveAs("onboarding-form.pdf")
name 属性が必要です。 名前が重複していると、生成されたPDF内でフィールドが同じ値を共有し、フォームを記入した際に予期しない動作が生じます。)}]
RELATED HOW-TO Article: How to Create Fillable PDF Forms in C#
特定のHTML要素をPDFに変換する方法
ページ全体ではなく特定のセクションをレンダリングするには、ターゲット要素を事前に分離してからレンダリングします。 最も直接的な方法は、JavaScript レンダリング オプションを使用してドキュメント本文をターゲット要素の内容に置き換え、WaitFor.HtmlQuerySelector() と組み合わせて、抽出前に要素が存在することを確認することです。 以下のコードスニペットは document.head を保持するため、スタイルシートとフォントが引き継がれます。この手順がないと、祖先セレクタに依存する CSS ルールは抽出された PDF で失われます。
サーバー側のシナリオで生の HTML にアクセスできる場合は、AngleSharp のようなパーサーを使用して対象のフラグメントを抽出し、それを RenderHtmlAsPdf() に渡します。JavaScriptの実行は必要ありません。
using IronPDF;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
// Replace the body with only the target element
renderer.RenderingOptions.JavaScript = @"
var el = document.querySelector('#invoice-summary');
if (el) {
var head = document.head.innerHTML;
document.body.innerHTML = el.outerHTML;
document.head.innerHTML = head;
}
";
// Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000);
var pdf = renderer.RenderHtmlAsPdf(fullPageHtml);
pdf.SaveAs("invoice-summary.pdf");
using IronPDF;
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
// Replace the body with only the target element
renderer.RenderingOptions.JavaScript = @"
var el = document.querySelector('#invoice-summary');
if (el) {
var head = document.head.innerHTML;
document.body.innerHTML = el.outerHTML;
document.head.innerHTML = head;
}
";
// Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000);
var pdf = renderer.RenderHtmlAsPdf(fullPageHtml);
pdf.SaveAs("invoice-summary.pdf");
Imports IronPDF
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
' Replace the body with only the target element
renderer.RenderingOptions.JavaScript = "
var el = document.querySelector('#invoice-summary');
if (el) {
var head = document.head.innerHTML;
document.body.innerHTML = el.outerHTML;
document.head.innerHTML = head;
}
"
' Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000)
Dim pdf = renderer.RenderHtmlAsPdf(fullPageHtml)
pdf.SaveAs("invoice-summary.pdf")
RELATED HOW-TO Article: How to Convert HTML Elements and Partial Pages to PDF
認証されたページをPDFにレンダリングする方法
認証の裏にあるページをレンダリングするには、ネットワークログイン認証情報、カスタムクッキー、HTTPリクエストヘッダーの3つのメカニズムがあります。 これは、保護されたウェブコンテンツをPDFに変換する際の最も一般的な認証シナリオをカバーします。
ログイン認証情報
保護された URL を PDF に変換する際は、基本認証、ダイジェスト認証、または NTLM 認証に ChromeHttpLoginCredentials を使用してください。
using IronPDF;
var renderer = new ChromePdfRenderer();
// Configure network authentication
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword",
AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
};
var pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/reports");
pdf.SaveAs("authenticated-report.pdf");
using IronPDF;
var renderer = new ChromePdfRenderer();
// Configure network authentication
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword",
AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
};
var pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/reports");
pdf.SaveAs("authenticated-report.pdf");
Imports IronPDF
Dim renderer As New ChromePdfRenderer()
' Configure network authentication
renderer.LoginCredentials = New ChromeHttpLoginCredentials With {
.NetworkUsername = "user@domain.com",
.NetworkPassword = "securePassword",
.AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
}
Dim pdf = renderer.RenderUrlAsPdf("https://intranet.company.com/reports")
pdf.SaveAs("authenticated-report.pdf")
クッキーとHTTPヘッダー
トークンベースまたはセッションベースの認証には、レンダリングリクエストにカスタムクッキーとHTTPヘッダーを直接添付します。
using IronPDF;
var renderer = new ChromePdfRenderer();
// Add session cookies
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123token";
renderer.RenderingOptions.CustomCookies["authToken"] = "bearer-xyz";
// Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
using IronPDF;
var renderer = new ChromePdfRenderer();
// Add session cookies
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123token";
renderer.RenderingOptions.CustomCookies["authToken"] = "bearer-xyz";
// Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
Imports IronPDF
Dim renderer As New ChromePdfRenderer()
' Add session cookies
renderer.RenderingOptions.CustomCookies("sessionId") = "abc123token"
renderer.RenderingOptions.CustomCookies("authToken") = "bearer-xyz"
' Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders("Authorization") = "Bearer eyJhbGciOi..."
Dim pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard")
pdf.SaveAs("dashboard.pdf")
CustomCookies辞書に渡して保護されたページをレンダリングすることを検討してください。
RELATED HOW-TO Article: How to Convert HTML Behind Login Authentication to PDF
4. クラウドプラットフォームでHTMLをPDFに展開する方法
クラウド環境でHTMLをPDFに変換するためには、ヘッドレスレンダリング、テンポラリファイルパス、リソース割り当てのための特定の設定が必要です。 このセクションでは、最も一般的なクラウドプラットフォームとIronPDFを使用したコンテナ化された展開をカバーします。
| プラットフォーム | 最小リソース | パッケージ | 自動設定 | テンポパス | 重要事項 |
|---|---|---|---|---|---|
| Azure App Service | B1レベル(基本) | IronPdf.Linux |
true
|
/tmp | 無料/共有レベルでは失敗します—GPUなし、メモリが少ないため |
| Azure Functions(Windows) | B1レベル | IronPDF |
true
|
/tmp | "パッケージファイルから実行"をオフにします |
| AWS Lambda | 512 MB / 330s タイムアウト | IronPdf.Linux |
true
|
/tmp(必要) | デフォルトのファイルシステムは読み取り専用です |
| Docker(Ubuntu/Debian) | イメージ依存 | IronPdf.Linux |
false
|
イメージデフォルト |
falseを設定—Dockerfileが依存関係を処理します
|
Azureに展開する方法
Azure FunctionsまたはApp Serviceに展開する際は、GPUアクセラレーションを無効にし、ホスティングレベルがChromeベースのレンダリングに十分なメモリを提供することを確認してください。 レンダリング呼び出しの前に、アプリケーションの起動時にこれらの設定を追加してください。
AzureサンドボックスはヘッドレスでGPUアクセスなしで実行され、無料/共有レベル(F1, D1)はChromeが必要とするリソースを持たないためです。 最低でもB1(基本)レベルまたはそれ以上をターゲットにしてください。
using IronPDF;
// Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependencies自動設定 = true;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>");
pdf.SaveAs("azure-report.pdf");
using IronPDF;
// Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependencies自動設定 = true;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>");
pdf.SaveAs("azure-report.pdf");
Imports IronPdf
' Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
' Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependencies自動設定 = True
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>")
pdf.SaveAs("azure-report.pdf")
RELATED GET-STARTED Guide: How to Deploy IronPDF on Azure
AWS Lambdaに展開する方法
AWS Lambda では Chrome ベースの PDF レンダリングのために Docker ベースの展開が必要です。 デフォルトの Lambda ファイルシステムは読み取り専用なので、すべての一時パスとデプロイメントパスは /tmp を指す必要があります。
レンダリング呼び出しの前に、関数ハンドラのトップでこれらの設定を構成します。
using Amazon.Lambda.Core;
using IronPDF;
public class PdfFunction
{
public string FunctionHandler(string input, ILambdaContext context)
{
// Lambda's only writable directory
var tmpPath = "/tmp/";
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependencies自動設定 = true;
context.Logger.LogLine("Rendering PDF...");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(input);
// Save to /tmp before uploading to S3 or returning
var outputPath = $"{tmpPath}output.pdf";
pdf.SaveAs(outputPath);
return outputPath;
}
}
using Amazon.Lambda.Core;
using IronPDF;
public class PdfFunction
{
public string FunctionHandler(string input, ILambdaContext context)
{
// Lambda's only writable directory
var tmpPath = "/tmp/";
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependencies自動設定 = true;
context.Logger.LogLine("Rendering PDF...");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(input);
// Save to /tmp before uploading to S3 or returning
var outputPath = $"{tmpPath}output.pdf";
pdf.SaveAs(outputPath);
return outputPath;
}
}
Imports Amazon.Lambda.Core
Imports IronPDF
Public Class PdfFunction
Public Function FunctionHandler(input As String, context As ILambdaContext) As String
' Lambda's only writable directory
Dim tmpPath As String = "/tmp/"
IronPdf.Installation.TempFolderPath = tmpPath
IronPdf.Installation.CustomDeploymentDirectory = tmpPath
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
' Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependencies自動設定 = True
context.Logger.LogLine("Rendering PDF...")
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(input)
' Save to /tmp before uploading to S3 or returning
Dim outputPath As String = $"{tmpPath}output.pdf"
pdf.SaveAs(outputPath)
Return outputPath
End Function
End Class
RELATED GET-STARTED Guide: How to Deploy IronPDF on AWS Lambda
Dockerで展開する方法
Docker デプロイメントの場合は、イメージ サイズを縮小し、ランタイム アセットのダウンロードを回避するために、IronPdf.Linux NuGetパッケージを使用してください。 このパッケージには、コンテナ化された環境に最適化された事前にバンドルされたLinuxネイティブバイナリが含まれています。
LinuxAndDockerDependencies自動設定 = false を、Dockerfile が既に apt-get を介して Chrome の共有ライブラリの依存関係をインストールしている場合に設定します。 その場合、ランタイムの自動インストールは冗長であり、権限エラーやコールドスタートの遅延を引き起こす可能性があります。
| プラットフォーム | パッケージ | 主要な設定 |
|---|---|---|
| Ubuntu 22.04 / Debian | IronPdf.Linux | デフォルト—そのままで機能します |
| Alpine Linux | IronPdf.Linux | Dockerfileにapksを通じてchromiumをインストールします |
| Amazon Linux 2 | IronPdf.Linux |
LinuxAndDockerDependencies自動設定 = trueを使用
|
| Windowsコンテナ | IronPDF | 追加の設定は不要です |
Ubuntu/Debianベースのイメージ用の最小限のマルチステージDockerfile:
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app
COPY . .
RUN dotnet publish -c Release -o /out
FROM mcr.microsoft.com/dotnet/aspnet:8.0
# Install Chrome dependencies for PDF rendering
RUN apt-get update && apt-get install -y \
libglib2.0-0 libnss3 libatk1.0-0 libatk-bridge2.0-0 \
libcups2 libdrm2 libxkbcommon0 libxcomposite1 \
libxdamage1 libxrandr2 libgbm1 libpango-1.0-0 \
libcairo2 libasound2 libxshmfence1 && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /out .
ENTRYPOINT ["dotnet", "MyApp.dll"]
using IronPDF;
// Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependencies自動設定 = false;
// No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>");
pdf.SaveAs("output.pdf");
using IronPDF;
// Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependencies自動設定 = false;
// No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>");
pdf.SaveAs("output.pdf");
Imports IronPDF
' Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependencies自動設定 = False
' No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>")
pdf.SaveAs("output.pdf")
RELATED GET-STARTED Guide: How to Use IronPDF with Docker
5. IronPDFと他 for .NET PDFライブラリの比較
IronPDFは、その堅牢なChromium搭載レンダリングエンジン、直感的なAPI、および頻繁な製品強化のおかげで、C#でのPDF生成に関して多くのチームに選ばれるソリューションです。 IronPDFを他のPDFコンバータと比較して、あなたのPDF生成ニーズに最適なものを見つけましょう。
クイック意思決定マトリックス: IronPDFと他 for .NET PDFコンバータの比較
| ソリューション | 使用時期 | 最適 |
|---|---|---|
| IronPDF。 | 最新のウェブサイト/HTMLを、正確なビジュアル忠実度でPDFに変換します。 | 信頼性の高いHTMLレンダリングエンジン、動的コンテンツ、プロフェッショナルなサポートを必要とするエンタープライズアプリケーション。 |
| wkhtmltopdf | 時代遅れのレンダリングが許容される、重要でないアプリケーションでの簡単なHTML変換。 | レガシーHTML/CSSによる基本的なドキュメント生成。 |
| シンクフュージョン | すでにSyncfusionのエコシステムに投資している場合、または無料のコミュニティライセンスを利用できる場合。 | 複数のSyncfusionコンポーネントを使用している組織。 |
| Aspose.PDF | HTMLレンダリングの品質がそれほど重要でない場合は、複雑なPDF操作を行います。 | HTML変換を超える広範なPDF編集機能。 |
関連する比較:
詳細な比較:IronPDFと他 for .NET PDFコンバーターの比較
| 特徴 | ★ おすすめIronPDF | wkhtmltopdf | iText 7 | Aspose.PDF | Syncfusion | Apryse | SelectPdf | Spire.PDF | PDFsharp | QuestPDF |
|---|---|---|---|---|---|---|---|---|---|---|
| Rendering & Conversion | ||||||||||
| レンダリング精度 | ピクセルパーフェクトベスト | 印刷スタイル | プログラムのみ | 良い | 良い | 良い | 良い | 低レベル | レンダリングなし | コードファーストレイアウト |
| HTML5サポート | 満杯 | 時代遅れ | アドオン | 部分的 | 満杯 | モジュール | 満杯 | 限定 | いいえ | いいえ(コードファースト) |
| CSS3 サポート | 満杯 | 限定 | アドオン | 部分的 | 満杯 | モジュール | 満杯 | 限定 | いいえ | いいえ(コードファースト) |
| JavaScriptの実行 | フルベスト | いいえ | いいえ | 論争中 | 限定 | 限定 | 限定 | 非常に限定的 | いいえ | いいえ |
| HTML→PDF(モダンレイアウト) | 組み込みChromiumベスト | Qt WebKit(古い) | 有料アドオン | 部分的; JS 異議あり | ブリンクエンジン | モジュールが必要 | 完全なHTML→PDF | 画像ベース | いいえ | HTMLレンダラーではありません |
| PDF→画像レンダリング | はい | いいえ | 個別のモジュール | 別製品 | はい | はい | いいえ | 限定 | いいえ | 独自のドキュメントのみ |
| ドキュメント操作 | ||||||||||
| プログラムでPDFを生成する | はい | いいえ | はい | はい | はい | はい | HTMLのみ | はい | 基本 | はい(Fluent API) |
| Merge, Split & Rearrange | はい | いいえ | はい | はい | はい | はい | はい | はい | 限定 | はい |
| ヘッダー / フッター / ページ番号 | HTML/テキスト/画像ベスト | 制限あり | はい | イベント経由 | イベント経由 | はい | テンプレート | マニュアル | 手動のみ | ファーストクラススロット |
| Watermarks & Stamping | テキストと画像 | いいえ | はい | はい | はい | はい | はい | 限定 | いいえ | はい(オーバーレイ) |
| PDF からテキストを抽出 | はい | いいえ | はい | はい | はい | はい | はい | はい | 基本 | いいえ |
| スキャンしたPDFのOCR | IronOCR統合経由 | いいえ | アドオン | 別製品 | アドオン | アドオン | いいえ | 回避策 | いいえ | いいえ |
| Security & Compliance | ||||||||||
| デジタル署名 | はい | いいえ | はい | はい | はい | サンプルコード | はい | いいえ | いいえ | 文書化されていない |
| PDF/A準拠 | はい(PDF/A-3B) | いいえ | 完全なPDF/A | 検証と作成 | ネイティブSDKが必要です | PDFAコンプライアンス | いいえ | はい | 限定 | PDF/A-2倍速および3倍速 |
| プラットフォーム & Developer Experience | ||||||||||
| クロスプラットフォーム | Windows · Linux · macOSすべて 3 | バイナリに依存 | .NET Standard2.0 | Linuxの追加設定 | Blink + .NETサーバー | ネイティブSDK | Windowsのみ* | 限定的な Linux ドキュメント | Windows 中心 | Windows/Linux/macOS |
| Cloud & Docker Deploy | Azure · AWS · Dockerベスト | 複雑; 遺産 | 複数のパッケージ | 部分的; コンテナ | 瞬きの追加機能が必要 | ネイティブデプス | Windowsのみ | 限定情報 | シンプル、軽量 | Docker/K8s; ローカル |
| Support & ドキュメント | ||||||||||
| ドキュメント | 広範囲 + コピー/ペーストに最適 | 部分的な CLI ドキュメント | 広範囲; KB | ブロード; GitHub | ヘルプセンター | 多言語カタログ | 入門ガイド | プログラムガイド | コミュニティガイド | 構造化 + コンパニオンアプリ |
| 開発者サポート | 24時間365日対応のエンジニアベスト | コミュニティのみ | サブスクリプションが含まれています | フォーラム + 有料 | 24時間年中無休のダイレクトトラック | コマーシャル | メール | フォーラム + メール | コミュニティのみ | コミュニティ + GitHub |
| Licensing & Pricing | ||||||||||
| ライセンスモデル | 永久 | オープンソース | AGPL / サブスクリプション | 永久 | 年間購読 | カスタム/消費 | 永久 | 年間購読 | 無料(MIT) | MIT 無料 / 有料プラン |
| 開始価格 | 799ドル(永久ライセンス) · 開発者1名 | style="color:#16a34a">無料 | 年間約45,000ドルのカスタム見積もり | 開発者1人あたり1,175ドル以上 | 年間995ドルのサブスクリプション · 無料 <$1M | 年間約9,000ドル以上カスタム見積もり | 499ドル以上永久 | 年間サブスクリプション999 ドル | style="color:#16a34a">無料 | style="color:#16a34a">無料コミュニティ MIT |
| 無料トライアル | 30日間・全機能制限なし | 該当なし(無料) | 30日間 | はい(透かし入り) | Community <$1M Rev | はい | コミュニティ(5ページ) | 無料(10ページ) | 該当なし(無料) | N/A (MIT Free <$1M) |
| 価格の透明性 | 公開済み&クリアベスト | オープンソース | 複雑なAGPL | 多くの階層 | 見積もりのお問い合わせ | 価格は公表されていません | 出版 | 出版 | MIT; 制限なし | MIT; 信頼ベース |
実際のHTMLからPDFへの変換比較:Redditのホームページのレンダリング
出力PDFの品質を評価するために、動的なウェブコンテンツ、モダンなCSS、JavaScript HTML要素を含むRedditのホームページを使用してこれらのライブラリをテストしました。 このページは、出力PDF生成の理想的なテストケースとして機能します。

IronPDF

IronPDFは、Chromeで表示されている通りに、全ての動的なウェブコンテンツ、モダンなウェブフォントスタイリング、およびインタラクティブ要素を完全に保持した結果をわずか数行のコードで提供します。
Syncfusion

Syncfusionは、特に動的コンテンツを欠いて多くのセクションとスタイリングが欠けたPDFをレンダリングしました。 最初はRedditのセキュリティによってブロックされました。 より良い結果を得るには広範なコマンドラインの調整が必要ですが、出力は不完全なままです。
Aspose.PDF

Aspose.PDF は最初に手動で HTML をダウンロードする必要がありました(直接の URL サポートはありません)。 変換後、出力は適切なフォーマットを欠き、ほとんどすべてのコンテンツセクションが欠けていたため、動的なコンテンツを持つモダンなウェブには適していませんでした。
wkhtmltopdf

wkhtmltopdfはすばやく完了しましたが、ライブ更新、動的要素、インタラクティブセクションのような重要なコンテンツが欠けているプレーンな静的ページを生成しました。 これは、wkhtmltopdfがモダンでJavaScript駆動のウェブサイトに対応していないことを示しています。
パフォーマンスと出力PDF品質に関する結論
.NET 開発者にとって信頼性のある HTML から PDF への変換ツールが必要な場合、IronPDF は最小限のコード、使いやすい API、頻繁な製品改善で際立っています。
ウェブコンテンツでの実際のテストでは、最速かつ最も正確な結果が得られ、Syncfusionは後れを取り、Asposeは追加の手順を必要とし、wkhtmltopdfはモダンなスタイリングを逃しました。 IronPDFは、今日のHTMLからPDFへの変換ワークフローにおいて、速度、正確さ、シンプルさの最適なバランスを提供します。
注意事項: Aspose、SyncFusion、wkhtmltopdfはそれぞれの所有者の商標です。 このサイトはそれらと提携しておらず、また、それらからの承認も受けていません。 すべての名前、ロゴ、およびブランドはそれぞれの所有者に帰属し、比較は執筆時点で公開されている情報に基づいています。
概要
このガイドでは、.NETでHTMLをPDFに変換するために必要なすべての事を解説しました:基本的な文字列変換から、非同期処理、デジタル署名、バッチ生成といった高度な機能まで。 3つの変換方法、基本設定、高度な機能とセキュリティ設定を示し、動的なドキュメント生成の実際のテストを通じてIronPDFを他のライブラリと比較しました。
競合他社がモダンなウェブサイトで苦労し、または複雑な解決策を必要としたのに対し、IronPDFは最小限のコードと強力なレンダリングエンジンで完璧な結果を提供しました。
数行のコードでPDFワークフローを効率化し、汎用性のあるPDF生成を体験する準備ができましたか? NuGetパッケージマネージャー(またはVisual StudioでNuGetパッケージの管理を選択)を通じてIronPDFをインストールし、今日最初のHTMLをPDFに変換してください。
透かしなしでの制作テスト用30日間の無料トライアルを開始 柔軟なライセンスは$799から始まり、ニーズに合わせて拡張可能な透明性の高いチーム価格設定となっています。
6. トラブルシューティングと技術サポート
HTMLをPDFに変換する際の以下のエラーに問題がありますか? IronPDFはhttps://ironpdf.com/でのチャットウィジェットを通じて24/7のエンジニアサポートを提供します。
一般的なエラーの迅速な解決
- 最初のレンダリングが遅い? 正常です。 Chromeは2〜3秒で初期化され、その後スピードアップします。
- クラウドの問題? 少なくともAzure B1または同等のリソースを使用してください。
- 資産が欠けている? 基本パスを設定するか、base64として埋め込んでください。
- 要素が欠けている? JavaScriptの実行にRenderDelayを追加してください。
- レンダリングでのメモリー? HTML to PDF、スタンプ、およびヘッダー/フッターの修正のためにv2025.9.4に更新してください。
- フォームフィールドの問題(例:長いテキストエリア、チェックボックス)? v2025.7.17で修正されました; チェックボックスにはユニークな名前を使用してください。
- カスタムヘッダー/フッターのクリッピングまたは特殊文字が破損する? v2025.8.8で解決されました。 テストのワードラッピングとメタデータ。
IronPDFを構築したエンジニアからの24時間年中無休のサポートを受ける
次のステップ
よくある質問
C#でHTMLをPDFに変換するには?
HTML、CSS3、JavaScriptをピクセルパーフェクトなPDFに変換するChromeレンダリングライブラリを使えば、C#でHTMLをPDFに変換できます。IronPDFのようなツールを使えば、ヘッダー、認証、印刷設定をサポートしながら、URL、HTML文字列、ファイルからレンダリングできます。
.NET用の最良のHTML to PDFライブラリは何ですか?
最良のライブラリは、正確なChromeレンダリング、クロスプラットフォームのデプロイメント、エンタープライズ機能をサポートする必要があります。IronPDFはこれらすべてをカバーしています - Windows、Linux、macOS、Docker上で動作し、セキュリティ、署名、コンプライアンス、および拡張性のある.NETアプリケーションをサポートしています。
C#を使用してHTML文字列をPDFに変換するにはどうすればいいですか?
HTML文字列をPDFに変換するには、ChromePdfRendererクラスとそのRenderHtmlAsPdfメソッドを使用します。このメソッドにHTML文字列を渡し、SaveAsでPDFを保存します。
C#でウェブページURLをPDFドキュメントに変換する手順は何ですか?
スタイル、画像、フォームやハイパーリンクなどのインタラクティブ要素を保持するために、RenderUrlAsPdfメソッドを使用して、ウェブページURLを直接PDFに変換できます。
C#でHTMLファイルをPDFに変換するには?
ローカルHTMLファイルをPDFに変換するには、ChromePdfRenderer.RenderHtmlFileAsPdf("path/to/file.html")を使用します。IronPDFはすべての相対アセットパス(画像、CSS、JS)を自動的に解決します。
ASP.NET Razor PagesまたはMVC ViewsをPDFに変換するにはどうすればよいですか?
IronPDFは専用のエクステンションパッケージを提供しています — Razor PagesにはIronPdf.Extensions.Razor、MVC ViewsにはIronPdf.Extensions.Mvc.Coreを使用します。依存性注入を使用して、RenderRazorToPdfまたはRenderRazorViewToPdfを使用して、コントローラからビューを直接PDFに変換します。Razorガイドを見る →
JavaScriptコンテンツがPDFに正しくレンダリングされるようにするにはどうすればよいですか?
JavaScriptレンダリングを有効にするには、RenderingOptions.EnableJavaScript = trueを設定し、RenderingOptions.WaitFor.RenderDelayを使用してレンダーディレイを追加します。これにより、変換前に動的コンテンツが完全に読み込まれることを保証します。WaitForガイドを見る →
C#でPDFにヘッダーとフッターを追加する最良の方法は何ですか?
単純なテキストのヘッダーとフッターにはTextHeaderFooterクラスを使用し、より複雑なHTMLコンテンツにはHtmlHeaderFooterクラスを使用します。{page}、{total-pages}、{date}などの動的プレースホルダーを含めることで、コンテンツを自動生成できます。ヘッダーとフッターガイドを見る →
C# .NETでPDF出力のページ区切りを管理するにはどうすればよいですか?
PDF内の改ページを制御するには、CSSプロパティpage-break-after: alwaysやpage-break-inside: avoidを印刷メディアタイプCSSブロック内で使用します。改ページガイドを見る →
PDFで用紙サイズと向き設定のオプションは何ですか?
紙サイズを設定するにはRenderingOptions.PaperSizeを使用し(A4、Letter、Legalなどのオプションがあります)、向きはRenderingOptions.PaperOrientationで設定します。ポートレートまたはランドスケープ。ミリメートルまたはインチのカスタムサイズもサポートされています。紙サイズガイドを見る →
認証されたウェブページをPDFに変換できますか?
はい。IronPDFはクッキー、カスタムHTTPヘッダー、フォームベースの認証をサポートしています。クッキーはChromePdfRenderer.RenderingOptions.CustomCookiesを通じて設定でき、トークンベースの認証のために認証ヘッダーを渡すことができます。Windows NTLMおよびKerberos認証もサポートされています。クッキーガイドを見る →
C#で単一のHTMLテンプレートから複数のPDFを作成できますか?
はい、プレースホルダがあるHTMLテンプレートを作成し、Handlebars.NETのような文字列置換やテンプレートライブラリを使用して実際の値に置き換え、RenderHtmlAsPdfを使用してPDFを生成します。
生成されたPDFにパスワードを設定してセキュリティを確保することは可能ですか?
はい、SecuritySettingsプロパティを使用してユーザーおよびオーナーパスワードを設定し、印刷やコピーなどの権限を構成し、SecuritySettings.EncryptionAlgorithmを使用してAES256暗号化を適用できます。暗号化ガイドを見る →
HTMLからPDF/A準拠の文書を生成できますか?
はい。IronPDFはアーカイブとアクセシビリティの準拠のためのPDF/A-1b、PDF/A-2b、PDF/A-3b、およびPDF/UA標準をサポートしており、ほとんどのHTML-to-PDFコンバータはこれを提供していません。PDF/Aガイドを見る →
大量のPDFを生成するためのパフォーマンスを最適化するにはどうすればよいですか?
非ブロッキング操作のためにRenderHtmlAsPdfAsyncなどの非同期メソッドを使用してパフォーマンスを最適化します。ChromePdfRendererのインスタンスを再利用し、Task.WhenAllを使用して複数のPDFを同時に処理し、64ビットシステム上で十分なサーバーリソースを確保してください。非同期ガイドを見る →
複数のPDFをマージしたり、ドキュメントにカバーページを含めるにはどうすればよいですか?
複数のPDFを結合するには、静的PdfDocument.Mergeメソッドを使用します。表紙ページを個別に作成し、メインドキュメントと結合して包括的なPDFを作成します。結合ガイドを見る →
IronPDFをAzure、AWS、またはDockerにデプロイできますか?
はい。IronPDFはAzure App Service、Azure Functions、AWS Lambda、およびLinux上のDockerコンテナで動作します。各プラットフォームの専用セットアップガイドとDockerイメージが利用可能です。Azureガイドを見る → · AWSガイドを見る → · Dockerガイドを見る →
.NET 10 の互換性: IronPDF はすぐに .NET 10 をサポートしますか?
はい — IronPDFは.NET 10と完全互換です。IronPDFのリリースノートによれば、このライブラリは.NET 10プロジェクトに即応可能で、追加の設定は不要です。ウェブ、コンソール、デスクトップ、またはマイクロサービスアプリケーションを使用しても、IronPDFは.NET 10で「箱から出してすぐ」に動作します。
IronPDFは無料で使用できますか?
IronPDFは30日間無料トライアルを提供しており、開発時にウォーターマークがなく、機能がフルに使用できます。本番環境での使用には$749からの商用ライセンスが必要です。Lite、Plus、Professional、およびEnterpriseの各階層があります。価格を見る →
このライブラリのレンダリング品質は、wkhtmltopdfなどの他のオプションと比べてどうですか?
このライブラリは、ピクセルパーフェクトなPDFを生成するモダンなChromeレンダリングエンジンを使用しています。サーバーの実行ファイルを必要とせず、完全なJavaScript/CSS3をサポートし、定期的なアップデートとプロフェッショナルなサポートを提供します。一方、wkhtmltopdfは古いWebKitエンジンを使用しています。
HTMLからPDFへの変換にこのライブラリをPDFSharpより選ぶべき理由は?
PDFSharpは組み込みのHTMLからPDFへの変換を持ち合わせておらず、複雑な回避策が必要です。このライブラリは、ハイレベルAPIを使用して直接HTML/URL/ファイルの変換を提供し、現代のWeb技術のサポートとプロフェッショナルサポートによる定期的な更新があります。PDFSharpの比較を見る →
HTML変換において、なぜこれがiTextSharpよりも優れた選択肢であるのか?
iTextSharpの無料版はネイティブのHTMLからPDFへの変換をサポートせず、APIが複雑な低レベルです。このライブラリはシームレスなHTML変換を直感的なAPIで提供し、完全なCSS3/JavaScriptのサポートがあり、AGPLライセンス制約がありません。iTextSharpの比較を見る →
このライブラリのレンダリング品質はAspose.PDFと比較してどうですか?
このライブラリはピクセルパーフェクトなChrome品質のPDFを生成しますが、Aspose.PDFはスタイルと動的コンテンツをよく見逃します。AsposeはURL変換のために手動でHTMLをダウンロードする必要がありますが、このライブラリは直接的でより正確なURL変換を提供します。Asposeの比較を見る →
Syncfusion PDFよりこのライブラリを選ぶ理由は?
Syncfusionは高性能ですが、このライブラリの最適化されたChromeエンジンはより高速で、動的コンテンツをより効果的に処理します。しかも、OCRとバーコード生成のような追加機能を提供しています。Syncfusionの比較を見る →

