C#でRazorをヘッドレスで使用してCSHTMLをPDFに変換する方法 | IronPDF

How to Convert Razor Views to PDFs Headlessly

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

「ヘッドレスレンダリング」という用語は、グラフィカルユーザーインターフェース (GUI) やブラウザウィンドウなしでウェブコンテンツをレンダリングするプロセスを指します。 IronPdf.Extensions.Razor パッケージは非常に便利ですが、ヘッドレスレンダリング機能は提供していません。 ヘッドレスレンダリングは、IronPdf.Extensions.Razorパッケージが満たせないユースケースのギャップを埋めることができます。

Razor.Templating.Coreパッケージを使用してcshtml (Razorビュー) をHTMLに変換し、それからIronPDFを使用してPDF文書を生成します。

クイックスタート: Razorビューを数秒でPDFに変換

IronPDFのヘッドレス変換でRazorビューを簡単にPDF文書に変換できます。 IronPdf.HtmlToPdf.StaticRender.RenderHtmlAsPdfメソッドを使用して、RazorビューからのHTMLコンテンツをプロフェッショナル品質のPDFに迅速にレンダリングします。 この合理化されたアプローチは、ASP.NET Core環境で作業する開発者に最適な、スムーズで効率的なプロセスを保証します。 IronPDFのシンプルさとパフォーマンスを文書のニーズにぜひ体験してください。

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    var html = await RazorTemplateEngine.RenderAsync("Views/Template.cshtml", model); 
    new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs("output.pdf");
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

最小ワークフロー(5ステップ)

  1. ASP.NET Core Web AppでRazorビューをPDFに変換するためのC#ライブラリをダウンロード
  2. 新しいRazorビューを作成し、データを表示するようにファイルを編集
  3. RenderAsyncメソッドを使用してRazorビューからHTMLに変換
  4. RenderHtmlAsPdfメソッドを使用してHTMLをPDFに変換
  5. クイックスタートのためのサンプルプロジェクトをダウンロード

Razor.Templating.Coreパッケージをインストールして、ASP.NET Core Web AppでRazorビューをHTML文書に変換します。

# Install the Razor.Templating.Core package using NuGet Package Manager
Install-Package Razor.Templating.Core
# Install the Razor.Templating.Core package using NuGet Package Manager
Install-Package Razor.Templating.Core
SHELL

RazorビューをPDFにレンダリング

ビューをPDFファイルに変換するには、ASP.NET Core Web App (Model-View-Controller)プロジェクトが必要です。

ビューを追加

  • 「ホーム」フォルダを右クリック。 "追加"および"ビューの追加"を選択。
  • 空のRazorビューを作成し、"Data.cshtml"と名付けます。

ビューを追加

Data.cshtmlファイルを編集

PDFにレンダリングしたいHTML文字列を追加してください:

<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    <tr>
        <td>John Doe</td>
        <td>Software Engineer</td>
        <td>Experienced software engineer specializing in web development.</td>
    </tr>
    <tr>
        <td>Alice Smith</td>
        <td>Project Manager</td>
        <td>Seasoned project manager with expertise in agile methodologies.</td>
    </tr>
    <tr>
        <td>Michael Johnson</td>
        <td>Data Analyst</td>
        <td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
    </tr>
</table>
<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    <tr>
        <td>John Doe</td>
        <td>Software Engineer</td>
        <td>Experienced software engineer specializing in web development.</td>
    </tr>
    <tr>
        <td>Alice Smith</td>
        <td>Project Manager</td>
        <td>Seasoned project manager with expertise in agile methodologies.</td>
    </tr>
    <tr>
        <td>Michael Johnson</td>
        <td>Data Analyst</td>
        <td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
    </tr>
</table>
HTML

Program.csファイルを編集

"Program.cs"ファイル内に次のコードを追加します。 以下のコードは、Razor.Templating.CoreライブラリのRenderAsyncメソッドを使用してRazorビューをHTMLに変換します。 続いて、ChromePdfRendererクラスをインスタンス化し、返されたHTML文字列をRenderHtmlAsPdfメソッドに渡します。 ユーザーはRenderingOptionsを使用して、カスタムテキストの追加、HTMLヘッダーとフッターを含む、カスタムマージンの定義、ページ番号の適用など、多様な機能にアクセスできます。

app.MapGet("/PrintPdf", async () =>
{
    // Set your IronPDF license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Enable detailed logging for troubleshooting
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

    // Render the Razor view to an HTML string
    string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");

    // Create a new instance of ChromePdfRenderer 
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Render the HTML string as a PDF document
    PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");

    // Return the PDF file as a response
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
app.MapGet("/PrintPdf", async () =>
{
    // Set your IronPDF license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Enable detailed logging for troubleshooting
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

    // Render the Razor view to an HTML string
    string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");

    // Create a new instance of ChromePdfRenderer 
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Render the HTML string as a PDF document
    PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");

    // Return the PDF file as a response
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
app.MapGet("/PrintPdf", Async Function()
	' Set your IronPDF license key
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

	' Enable detailed logging for troubleshooting
	IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All

	' Render the Razor view to an HTML string
	Dim html As String = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml")

	' Create a new instance of ChromePdfRenderer
	Dim renderer As New ChromePdfRenderer()

	' Render the HTML string as a PDF document
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html, "./wwwroot")

	' Return the PDF file as a response
	Return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf")
End Function)
$vbLabelText   $csharpLabel

アセットリンクの変更

"Views"フォルダ -> "Shared"フォルダ -> "_Layout.cshtml"ファイルに移動します。リンクタグで、"~/"を"./"に変更します。

これは重要です。なぜなら、"~/"はIronPDFとあまりうまく動作しないからです。

プロジェクトを実行

プロジェクトを実行し、PDFドキュメントを生成する方法を示します。

ASP.NET Core MVCプロジェクトを実行

出力PDF

ASP.NET Core MVCプロジェクトをダウンロード

このガイドの完全なコードをダウンロードできます。これは圧縮ファイルとして提供され、Visual StudioでASP.NET Core Web App (Model-View-Controller)プロジェクトとして開くことができます。

プロジェクトをダウンロードするにはここをクリック。

よくある質問

どのようにしてRazorビューをヘッドレスでPDFに変換できますか?

RazorビューをヘッドレスでPDFに変換するために、Razor.Templating.Coreパッケージを使用してRazorビューをHTMLとしてレンダリングします。その後、IronPDFのRenderHtmlAsPdfメソッドを活用してHTMLをPDFドキュメントに変換します。

ヘッドレスレンダリングとは何で、なぜ便利なのですか?

ヘッドレスレンダリングは、グラフィカルユーザーインターフェイスなしでウェブコンテンツを生成するプロセスです。これは、GUIが不要でリソースを節約できるPDF生成などのサーバーサイドレンダリングタスクに便利です。

IronPdf.Extensions.RazorパッケージはヘッドレスPDF変換に使用できますか?

いいえ、IronPdf.Extensions.Razorパッケージはヘッドレスレンダリングをサポートしていません。代わりに、RazorビューをHTMLに変換するためにRazor.Templating.Coreを使用し、HTMLをPDFに変換するためにIronPDFを使用します。

PDF変換におけるRazor.Templating.Coreパッケージの役割は何ですか?

Razor.Templating.Coreパッケージは、RazorビューをHTML文字列に変換するために使用されます。このHTMLは、その後、IronPDFのRenderHtmlAsPdfメソッドを使用してPDFに変換できます。

IronPDFの互換性のために_Layout.cshtmlファイルを変更する必要があるのはなぜですか?

IronPDFは'~/'パスをうまく処理しないため、リンクタグの'~/'を'./'に変更する必要があります。'./'を使用することで、PDF生成中にパスが正しく解決されます。

RazorビューをPDFに変換する際に問題をトラブルシューティングするにはどうすればよいですか?

IronPDFでIronPdf.Logging.Logger.LoggingModeIronPdf.Logging.Logger.LoggingModes.Allに設定することで詳細なログを有効にします。これにより、変換プロセス中の問題を診断し解決するための洞察に満ちたログが提供されます。

RazorビューPDF変換のためにProgram.csで必要なセットアップは何ですか?

Program.csで、ASP.NET Core Web AppがRazorビューをサポートするよう正しく構成され、変換プロセスを助けるためにRazor.Templating.CoreやIronPDFのような必要なパッケージを参照していることを確認してください。

RazorビューをPDFに変換するための完全なサンプルプロジェクトはどこで見つけられますか?

RazorビューをPDFに変換するための完全なサンプルプロジェクトは、IronPDFのウェブサイトでダウンロードできます。これは、ASP.NET Core Web App(モデルビューコントローラープロジェクト)でRazorビューをPDFに変換するためのすべての必要なセットアップを含んでいます。

Razor ビューをヘッドレスで PDF に変換する場合、IronPDF は .NET 10 と互換性がありますか?

はい。IronPDF は .NET 10 をサポートしています。これには、ターゲットフレームワーク net10.0 用に計算された IronPdf.Extensions.Razor パッケージが含まれており、.NET 10 でのヘッドレス Razor View から PDF への変換と互換性があります。([nuget.org](https://www.nuget.org/packages/IronPdf.Extensions.Razor?utm_source=openai))

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
準備はいいですか?
Nuget ダウンロード 16,154,058 | バージョン: 2025.11 ただ今リリースされました