HTMLからPDFへ: C# .NETのクイックチュートリアル

HTMLをPDFに変換する方法 (開発者ガイド) - C

This article was translated from English: Does it need improvement?
Translated
View the article in English

C#でHTMLをPDFに変換することは、実世界の要件が表面化するまでは単純に思えることがよくあります。 開発者は、レンダリングの精度、デプロイメント、スケーラビリティに影響する制限にすぐに遭遇します。

レンダリングだけでなく、インフラの互換性も重要です。 チームは、最新 for .NETランタイム、クラウドプラットフォーム、コンテナ化された環境において、パフォーマンスを犠牲にすることなくPDF生成が機能することを保証しなければなりません。

このようなギャップを解決するために、IronPDFのような最新のChromeベースのソリューションは、より高いレンダリング忠実度、より幅広いプラットフォームサポート、そして本番環境に対応したデプロイワークフローを提供します。

TL;DR: HTML を PDF に変換するためのクイックスタート ガイド

IronPDF ライブラリを使用すれば、C# で HTML を PDF に簡単に変換できます。このライブラリには、HTML、CSS、JavaScript から高品質な PDF ファイルを作成するための ChromePdfRenderer.RenderHtmlAsPdf メソッドが用意されています。

  1. IronPDF をNuGetパッケージマネージャでインストール

    PM > Install-Package IronPdf
  2. このコード スニペットをコピーして実行します。

    IronPdf.ChromePdfRenderer
           .StaticRenderHtmlAsPdf("<p>Hello World</p>")
           .SaveAs("pixelperfect.pdf");
  3. 実際の環境でテストするためにデプロイする

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

    arrow pointer

IronPDFを購入するか、30日間の試用版にサインアップした後、メールで送信されたライセンスキーを見つけてください。 アプリケーションの開始でライセンスキーを追加してください。

IronPdf.License.LicenseKey = "KEY";
IronPdf.License.LicenseKey = "KEY";
Imports IronPdf

IronPdf.License.LicenseKey = "KEY"
$vbLabelText   $csharpLabel

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が複雑な処理をわずか数行のコードで行います。

関連: IronPDFの変更ログ: 更新、マイルストーン、ロードマップ

学習内容

1.HTMLをPDFに変換する方法C#

- [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)

2.HTMLからPDFへの設定を構成する方法

3.高度な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. クラウドプラットフォームでHTMLをPDFに展開する方法

  2. IronPDFと他 for .NET PDFライブラリの比較

  3. トラブルシューティングと技術サポート

1. How to Convert HTML to PDF C

HTML文字列、URL、HTMLファイルを操作しているかどうかにかかわらず、IronPDFはあなたの特定の要件に応じて高品質なPDFドキュメントを生成する柔軟なオプションを提供します。

このチュートリアルでは、HTML文字列からPDF、URLからPDF、HTMLファイルからPDFを含む最も一般的なシナリオを通じて案内します。 さらに、IronPDFは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")
$vbLabelText   $csharpLabel

パフォーマンス

IronPDFによる文字列、URL、HTMLからのPDF変換のパフォーマンスは、16GBのRAMを搭載したLenovo製ノートPCを使用して測定されました。 テスト用ドキュメントは、標準的なCSS Grid、グラデーション、および複数セクションのテーブルを含む3ページのEnterprise向け請求書です。

翻訳結果は以下の通りです:

メトリック 価値
平均レンダリング時間 ~486 ms
レンダリングごとのメモリ ~3.6 MB

16コアワークステーション(Windows 11、.NET 8)での連続5回のレンダリング結果に基づく。 最初の呼び出しには、Chromiumエンジンの初期化(約1.3秒)も含まれます

最初にテストを実行した際、レンダリング時間が非常に遅かった(1回の呼び出しにつき1秒以上もかかった!)。 状況を調べてみると、Chromiumのインスタンスが複数起動したままだったこと、そしてバッテリー駆動中だったことに気づきました。この2つの要因により、ライブラリの本来の速度が発揮されていなかったのです。 競合するプロセスを終了し、電源を接続すると、パフォーマンスが向上しました。ウォームアップ後の実行時間は平均約486ミリ秒で、最速では473ミリ秒近くまで短縮されました。

ヒント(v2025.9.4対応) 最近の更新で特殊文字/絵文字のHTMLメタデータ問題を修正し、Linuxでの中国語文字を含むHTMLフォームフィールドの処理を改善。) Dynamic content with EnableJavaScript = true により最適な結果をテストします。
を使用して動的コンテンツをテストしてください )}]

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")
$vbLabelText   $csharpLabel

ヒントBaseUrlPathはIronPDFにCSS、JavaScript、および画像ファイルの場所を示します。 ### 既存のURLをPDFにエクスポートする方法

警告自動ドキュメント生成にどのライブラリを使用する場合でも、出力のテストが重要である理由として、特に注意すべき点が1つあります。それは、参照がシステム設定にデフォルトで戻された場合、Enterpriseドキュメントに破損した要素が含まれたり、アセットが欠落したりする可能性があることです。 IronPDFには、相対パスを正しいディレクトリに指定するためのBaseUrlPathパラメータが用意されているため、通常は一括処理を実行する前に簡単な出力チェックを行うだけで、この問題を検出できます。

関連するハウツー記事: C#でHTML文字列をPDFに変換する方法

このアプローチでは、指定された任意の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
$vbLabelText   $csharpLabel

動的な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
$vbLabelText   $csharpLabel

レスポンシブな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")
$vbLabelText   $csharpLabel

レスポンシブCSS

レスポンシブWebページはブラウザでの表示を想定して設計されており、IronPDFはサーバーのOS上で実際のブラウザウィンドウを開かないため、レスポンシブHTML要素は最小サイズでレンダリングされる場合があります。Webページ全体をレンダリングする際、この問題に対処するには 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
```
$vbLabelText   $csharpLabel

関連するハウツー記事: URL を 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
$vbLabelText   $csharpLabel

パフォーマンス

パフォーマンスは、すべての変数を一定に保った状態で、ディスク上のファイルから前述の3ページのEnterprise向け請求書をレンダリングすることで再度測定されました:

メトリック 価値
平均レンダリング時間 ~502 ms
レンダリングごとのメモリ ~3.1 MB

同一の16コアワークステーション(Windows 11、.NET 8)上で、5回連続のレンダリング結果に基づいて測定。 ファイルベースのレンダリングは、インメモリ文字列レンダリングと約3%以内の誤差で一致します; ディスクからHTMLを読み込むことによる測定可能なオーバーヘッドは生じません。

2. HTMLからPDFへの設定を構成する方法 PDFドキュメントを操作する際、IronPDFは、レンダリングされたPDFに対するChromePdfRenderer.RenderingOptionsプロパティを通じて広範囲なカスタマイズを提供します

関連HOW-TO記事: HTMLファイルをPDFにレンダリングする

RazorページをPDFに変換する方法

既にRazorページを使用しているASP.NET Coreプロジェクトがある場合、そのHTMLを再構築することなく直接PDFに変換できます。 IronPDFのRazor拡張機能は、RenderRazorToPdfメソッドを追加します。このメソッドは、モデルとレイアウトを含む.cshtmlページを受け取り、単一の呼び出しでPDFドキュメントとしてレンダリングします。

PM > Install-パッケージ IronPdf.Extensions.Razor
PM > Install-パッケージ IronPdf.Extensions.Razor
SHELL
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class ReportModel : PageModel
{
    public IActionResult OnGet()
    {
        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;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class ReportModel : PageModel
{
    public IActionResult OnGet()
    {
        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
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages

Public Class ReportModel
    Inherits PageModel

    Public Function OnGet() As IActionResult
        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")
    End Function
End Class
$vbLabelText   $csharpLabel

ご注意RenderRazorToPdfは、ASP.NET Core Webアプリプロジェクトが必要です。 コンソールアプリケーションやクラスライブラリでは機能しません。Razorビューエンジンはホスティングパイプラインで利用可能である必要があります。)]] )}]

関連ハウツー記事: RazorページでCSHTMLをPDFに変換する方法

MVCビューをPDFに変換する方法

MVCパターンを使用するチームは、既存のビューやコントローラーから直接PDFを生成できます。 MVC Core 拡張パッケージをインストールし、ビューパスとモデルを指定して RenderRazorViewToPdf を呼び出してください。IronPDF が Razor レンダリングパイプラインを処理し、完成した PDF を出力します。

特にレポートや請求書、ブラウザで既に設計およびテストされたページに便利です。 生成されたPDFは、レイアウトページや部分視図を含むビューの出力全体を保持します。

PM > Install-パッケージ IronPdf.Extensions.Mvc.Core
PM > Install-パッケージ IronPdf.Extensions.Mvc.Core
SHELL

まず、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)()
$vbLabelText   $csharpLabel

次に、コントローラーアクションでレンダラーを注入し、任意のビューをPDFに変換します。

using IronPdf;
using IronPdf.Extensions.Mvc.Core;
using Microsoft.AspNetCore.Mvc;

public class ReportController : Controller
{
    private readonly IRazorViewRenderer _viewRenderService;

    // Inject the view renderer via constructor
    public ReportController(IRazorViewRenderer viewRenderService)
    {
        _viewRenderService = viewRenderService;
    }

    public IActionResult Download()
    {
        var reportModel = new { Title = "Quarterly Report", Total = 1250.00 };
        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;
using Microsoft.AspNetCore.Mvc;

public class ReportController : Controller
{
    private readonly IRazorViewRenderer _viewRenderService;

    // Inject the view renderer via constructor
    public ReportController(IRazorViewRenderer viewRenderService)
    {
        _viewRenderService = viewRenderService;
    }

    public IActionResult Download()
    {
        var reportModel = new { Title = "Quarterly Report", Total = 1250.00 };
        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
Imports Microsoft.AspNetCore.Mvc

Public Class ReportController
    Inherits Controller

    Private ReadOnly _viewRenderService As IRazorViewRenderer

    ' Inject the view renderer via constructor
    Public Sub New(viewRenderService As IRazorViewRenderer)
        _viewRenderService = viewRenderService
    End Sub

    Public Function Download() As IActionResult
        Dim reportModel = New With {.Title = "Quarterly Report", .Total = 1250.0}
        Dim renderer = 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")
    End Function
End Class
$vbLabelText   $csharpLabel

関連ハウツー記事: ASP.NET Core MVCでビューをPDFに変換する方法

2. HTML から PDF への設定を構成する方法

PDFドキュメントの操作に関して、IronPDFはレンダリングされたPDFに対してChromePdfRenderer.RenderingOptionsプロパティを通じて広範なカスタマイズ機能を提供します。

設定 概要
PaperSize 既存のPDFのページ寸法を設定する(A4、レター、リーガルなど) PdfPaperSize.A4
PaperOrientation 既存のPDFに縦書きまたは横書きを設定する PdfPaperOrientation.Landscape
MarginTop/Bottom/Left/Right ページの余白をミリメートル単位で設定します(デフォルト:25mm)
CssMediaType HTMLからPDFへのスクリーンまたは印刷CSS PdfCssMediaType.Print
PrintHtmlBackgrounds 背景色/画像を含める (デフォルト: true) 真実
EnableJavaScript 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 As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
pdfDocument.SaveAs("styled-output.pdf")
$vbLabelText   $csharpLabel

[[t:(PdfCssMediaType を使用して、レンダリングされた PDF ファイル形式のクリーンで印刷に最適化されたレイアウトを実現します。 ユーザーがブラウザで見る内容と完全に一致させるためにScreenを使用します。