How to Convert Razor Views to PDFs Headlessly in C#
RazorビューをPDFに変換するには、C#でRenderHtmlAsPdfメソッドを使用してGUIやブラウザウィンドウを必要とせずにPDFドキュメントを生成します。
ヘッドレス・レンダリングは、グラフィカル・ユーザー・インターフェイスなしでウェブコンテンツを処理します。 IronPdf.Extensions.Razorは便利ですが、ヘッドレスレンダリング機能がありません。 このガイドは、そのギャップを解決します。
cshtmlをHTMLに変換し、その後IronPDFでPDFを生成します。
クイックスタート: Razorビューを数秒で PDF に変換する
IronPDFのヘッドレス変換でRazorビューをPDFに変換します。 IronPdf.HtmlToPdf.StaticRender.RenderHtmlAsPdfを使用してRazorビューからPDFにHTMLをレンダリングします。 このアプローチは、ASP.NET Core環境でもシームレスに機能します。
-
1Install IronPDF with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
var html = await RazorTemplateEngine.RenderAsync("Views/Template.cshtml", model); new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs("output.pdf");C# -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronPDF を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- ASP.NETコアWebアプリでRazorビューをPDFに変換するためのC#ライブラリをダウンロードする。
- 新しいRazorビューを作成し、データを表示するためにファイルを編集します
RenderAsyncメソッドを使用して、Razor View から HTML に変換してください。RenderHtmlAsPdfメソッドを使ってHTMLをPDFに変換する- クイックスタート用のサンプルプロジェクトをダウンロード
Razor.Templating.Coreをインストールして、ASP.NET Core Web AppsでRazorビューをHTMLに変換します。
# Install the Razor.Templating.Core package using NuGet Package Manager
Install-Package Razor.Templating.Core
PDF変換のためにASP.NET Coreプロジェクトをセットアップするにはどうすればよいですか?
View を PDF に変換するには、ASP.NET Core Web App (Model-View-Controller) プロジェクトが必要です。 セットアップには、Visual Studioでのプロジェクトの作成、NuGetパッケージのインストール、プロジェクト構造の構成が含まれます。 同様のテクニックについては、converting CSHTML to PDF in MVC Coreまたはconverting CSHTML to PDF using Razor Pagesを参照してください。
IronPdf.Extensions.Razorの代わりにRazor.Templating.Coreが必要な理由は?
Razor.Templating.Coreは真のヘッドレスレンダリングを提供し、RazorビューをHTMLに変換する際にウェブコンテキストやブラウザウィンドウを必要としません。 バックグラウンドサービス、コンソールアプリケーション、またはUIレス環境に適しています。 IronPdf.Extensions.Razorは機能するためにウェブコンテキストを必要とします。
ヘッドレスPDF生成に最適なプロジェクトタイプは?
ASP.NET Core Web App(Model-View-Controller)プロジェクトは、必要な Razor View インフラストラクチャと柔軟なデプロイオプションを提供します。 このアプローチは、バックグラウンドサービス、Azure Functions、またはコンソールアプリケーションで使用します。 クラウドベースの生成についてはdeploying IronPDF to Azureをご覧ください。
必要な NuGet パッケージはどのようにインストールしますか?
NuGetパッケージマネージャを使用してパッケージをインストールします。 Razor.Templating.Coreが必要です。
// Install via Package Manager Console
Install-Package IronPdf
Install-Package Razor.Templating.Core
// Or add to your .csproj file
// <PackageReference Include="IronPdf" Version="2024.x.x" />
// <PackageReference Include="Razor.Templating.Core" Version="1.x.x" />
PDF生成用のRazorビューを作成および設定するには?
- ホーム"フォルダを右クリックします。 "追加"、"ビューを追加 "の順に選択してください。
- 空のRazorビューを "Data.cshtml "という名前で作成します。

どのような HTML コンテンツを Razor ビューに追加すればよいですか?
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>
複雑なレイアウトの場合は、CSSと印刷スタイルを使用して、完璧なPDFレンダリングを保証してください。 IronPDFは洗練されたドキュメントレイアウトのための最新のCSS3機能をサポートしています。
なぜPDFのデータ表示にテーブルを使うのですか
表は、構造化され、整理された情報を提供し、印刷文書によく翻訳されます。 また、プラットフォーム間で一貫した書式を維持し、PDFフォーマットで読みやすいものでなければなりません。 IronPDFのレンダリングエンジンはテーブルレイアウトをうまく処理し、ボーダー、スペーシング、アライメントを保持します。 高度な書式設定については、カスタムマージンでレイアウトを最適化してください。
PDF出力のための一般的なスタイリングの考慮事項とは
PDF出力には、印刷に特化したCSSメディアクエリ、相対単位の代わりに固定ピクセル値、一貫したレンダリングのための埋め込みフォントを使用してください。 IronPDFはブランドの一貫性を保つためにウェブフォントとアイコンフォントをサポートしています。 複数ページの文書では改ページを考慮し、プロフェッショナルな外観のために適切な余白をとってください。
ヘッドレスPDFレンダリングにProgram.csをどのように設定しますか?
Program.csにこのコードを追加します。 このコードはRenderHtmlAsPdfにHTMLを渡します。 カスタムテキスト、ヘッダー、フッター、余白、ページ番号にはRenderingOptionsを使用します。
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();
// Configure rendering options for professional output
renderer.RenderingOptions.PaperSize = IronPdf.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
// 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");
});Imports IronPdf
Imports Microsoft.AspNetCore.Http
app.MapGet("/PrintPdf", Async Function() As Task(Of IResult)
' 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()
' Configure rendering options for professional output
renderer.RenderingOptions.PaperSize = IronPdf.PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
' 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)どのようなレンダリング オプションを PDF に適用できますか?
IronPDFは幅広いレンダリングオプションを提供します。 ヘッダーとフッターを追加し、カスタム用紙サイズを設定し、ページの向きを制御し、透かしを追加します。 ChromePdfRendererは、PDF生成をカスタマイズするための50以上のプロパティを提供します。
PDF生成中のエラーはどのように処理しますか?
堅牢なPDF生成のためのエラー処理を実装する:
try
{
var html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
}
catch (Exception ex)
{
// Log the error details
IronPdf.Logging.Logger.Log($"PDF generation failed: {ex.Message}");
return Results.Problem("Failed to generate PDF", statusCode: 500);
}Imports IronPdf
Imports System.Threading.Tasks
Try
Dim html = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml")
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot")
Return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf")
Catch ex As Exception
' Log the error details
IronPdf.Logging.Logger.Log($"PDF generation failed: {ex.Message}")
Return Results.Problem("Failed to generate PDF", statusCode:=500)
End Try詳細ログはいつ有効にすべきですか?
開発中やトラブルシューティング中に詳細なロギングができるようにします。 IronPDFのロギングはレンダリングに関する洞察を提供し、HTMLの解析、アセットの読み込み、設定の問題を特定するのに役立ちます。 本番環境では、カスタムロギングを使用して、アプリケーションのロギングインフラストラクチャと統合してください。
なぜアセット リンク パスを修正する必要があるのですか?
Views > Shared > _Layout.cshtmlに移動してください。 リンクタグでは"~/"はIronPDFとの互換性が良くないためです。
その他に注意すべきパス関連の問題はありますか?
チルダ(~)パスの問題を超えて、画像ソースが絶対パスまたは適切な相対参照を使用していることを確認してください。 外部リソースについては、アセットが正しく読み込まれるように、ベースURLを使用してください。 Azure Blob Storageの画像については、Azure Blob Storageからの画像の埋め込みを参照してください。
静的アセットはPDF生成にどのように影響しますか?
静的アセット(CSS、JavaScript、画像)は、PDF生成のパフォーマンスと品質に影響を与えます。 レンダリング中にアセットにアクセスできるようにし、最適化された画像を使用し、レンダリングを高速化するために重要なCSSをインラインで埋め込むことを検討してください。 JavaScript を多用するコンテンツの rendering delay and timeouts について学んでください。
ヘッドレスPDFの生成をテストするにはどうすればよいですか?
プロジェクトを実行してPDFドキュメントを生成します。
出力PDF
最終的なPDFはどのようになりますか?
PDFは、テーブル構造、フォント、色、レイアウトなど、すべてのRazor Viewフォーマットを維持する必要があります。 適切なサイズで、きれいな余白があり、プロフェッショナルな外観であること。 出力品質を確認するために、IronPDFのラスタライズ機能を使ってページを画像としてプレビューしてください。
一般的な PDF レンダリングの問題をトラブルシューティングするにはどうすればよいですか?
よくある問題としては、スタイルの欠落、レイアウトの崩れ、コンテンツの不完全さなどがあります。 詳細なロギングを有効にし、アセットパスを検証し、HTMLが適切に検証されるようにします。 複雑なレイアウトの場合、Chromeデバッグツールを使用して、変換前にHTMLをプレビューしてください。 特定のレンダリングの問題については、WaitFor delays を使用して、レンダリング前にコンテンツが読み込まれるようにしてください。
完全な実例はどこでダウンロードできますか?
圧縮されたVisual Studio ASP.NET Core Web App(Model-View-Controller)プロジェクトとして完全なコードをダウンロードしてください。
サンプルプロジェクトを実行するための前提条件は何ですか?
Visual Studio 2019以降と.NET 6.0 SDK以降が必要です。 プロジェクトにはNuGetパッケージの復元のためにインターネット接続が必要です。 実行する前にProgram.csでIronPDFライセンスキーを更新してください。 導入については、Windowsインストールガイドを参照してください。
自分のユースケースに合わせてサンプルをカスタマイズするにはどうすればよいですか?
サンプルは、特定のニーズに対応するための基礎となります。 動的なデータモデルを追加したり、頻繁に生成されるPDFのキャッシュを実装したり、既存の認証と統合したりします。 高度なシナリオについては、async PDF 生成でパフォーマンスを向上させたり、PDF 圧縮を実装してファイル サイズを削減したりすることを検討してください。 文書の信頼性のためにデジタル署名を追加したり、機密文書のためにパスワード保護を追加します。
よくある質問
C# で Razor Views を GUI なしで PDF に変換する方法を教えてください。
Razor.Templating.Coreを使ってcshtmlファイルをHTMLに変換し、IronPDFのRenderHtmlAsPdfメソッドを使ってPDFをヘッドレスで生成します。この2段階のプロセスにより、グラフィカルユーザーインターフェイスやブラウザウィンドウを必要とせずにRazorビューをPDFドキュメントに変換することができます。
RazorのビューをヘッドレスでPDFにレンダリングする最も速い方法は何ですか?
まずRazorTemplateEngine.RenderAsyncでRazorビューをHTMLに変換し、IronPDFのChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs()メソッドでPDFファイルを作成し保存します。
なぜIronPdf.Extensions.Razorの代わりにRazor.Templating.Coreを使う必要があるのですか?
Razor.Templating.Coreは真のヘッドレスレンダリング機能を提供し、ウェブコンテキストやブラウザウィンドウなしでRazorビューをHTMLに変換することができます。Razor.Templating.Coreはバックグラウンドサービスやコンソールアプリケーションに向いています。
ヘッドレスPDF生成にはどのようなASP.NET Coreプロジェクトが必要ですか?
ASP.NET Core Web App (Model-View-Controller) プロジェクトを使用し、必要な Razor View インフラストラクチャと柔軟なデプロイメントオプションを提供します。このセットアップは、バックグラウンドサービス、Azure Functions、またはコンソールアプリケーション用のIronPDFとうまく機能します。
Razor から PDF への変換に必要なパッケージのインストール方法を教えてください。
Razor.Templating.CoreをNuGetパッケージマネージャを使って'Install-Package Razor.Templating.Core'コマンドでインストールします。HTMLからPDFへの変換ステップを処理するために、プロジェクトにIronPDFをインストールする必要があります。
このヘッドレスPDF生成アプローチをクラウド環境で使用できますか?
IronPDFのヘッドレスRazorからPDFへの変換は、Azure Functions、AWS Lambda、コンテナ化されたアプリケーションを含むクラウド環境で優れた機能を発揮し、スケーラブルなドキュメント生成サービスに最適です。
What are the key considerations for styling HTML content for PDF rendering?
When styling HTML for PDF, focus on using print-specific CSS, fixed pixel values, and embedded fonts to ensure consistent rendering, as well as defining margins and breaks appropriately for professional output.
How can static assets impact PDF generation with IronPDF?
Static assets such as CSS, JavaScript, and images influence the quality and speed of PDF rendering. Ensuring assets are accessible and optimized is crucial for consistent performance and visual accuracy.
What should you do if asset paths cause issues in PDF rendering?
Ensure asset paths are correctly formatted, avoiding problematic paths like '~/' and using absolute or properly relative path references to guarantee that all resources load during the rendering process.
What are the prerequisites for running the sample Razor to PDF conversion project?
To run the sample project, you need Visual Studio 2019 or later with the .NET 8.0 SDK and an active internet connection for NuGet package restoration. Additionally, update your IronPDF license key in the code.

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