How to Convert Razor Views to PDFs Headlessly in C
C# を使用して Razor ビューを PDF に変換するには、Razor.Templating.Core を使用して cshtml ファイルを HTML に変換し、その後 IronPDF の RenderHtmlAsPdf メソッドを使用して、GUI やブラウザウィンドウを必要とせずに PDF ドキュメントを生成します。
ヘッドレス・レンダリングは、グラフィカル・ユーザー・インターフェイスなしでウェブコンテンツを処理します。 IronPdf.Extensions.Razorは有用ですが、ヘッドレスレンダリング機能がありません。 このガイドは、そのギャップを解決します。
Razor.Templating.Core を使用して cshtml を HTML に変換し、IronPDF を使用して PDF を生成します。
クイックスタート: Razorビューを数秒で PDF に変換する
IronPDFのヘッドレス変換でRazorビューをPDFに変換します。 RazorビューのHTMLをPDFに変換するには、IronPdf.HtmlToPdf.StaticRender.RenderHtmlAsPdfを使用してください。 このアプローチは、ASP.NET Core環境でもシームレスに機能します。
最小限のワークフロー(5ステップ)
- ASP.NETコアWebアプリでRazorビューをPDFに変換するためのC#ライブラリをダウンロードする。
- 新しいRazorビューを作成し、データを表示するためにファイルを編集します
RenderAsyncメソッドを使用して、Razor View から HTML に変換してください。RenderHtmlAsPdfメソッドを使ってHTMLをPDFに変換する- クイックスタート用のサンプルプロジェクトをダウンロード
ASP.NET Core Web アプリで Razor ビューを HTML に変換するには、Razor.Templating.Core をインストールしてください。
# 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
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 は、Web コンテキストやブラウザウィンドウを使用せずに Razor ビューを HTML に変換する、真のヘッドレスレンダリングを実現します。 バックグラウンドサービス、コンソールアプリケーション、またはUIレス環境に適しています。 IronPdf.Extensions.Razor は機能するために Web 環境を必要とします。
ヘッドレスPDF生成に最適なプロジェクトタイプは?
ASP.NET Core Web App(Model-View-Controller)プロジェクトは、必要な Razor View インフラストラクチャと柔軟なデプロイオプションを提供します。 このアプローチは、バックグラウンドサービス、Azure Functions、またはコンソールアプリケーションで使用します。 クラウドベースの生成についてはdeploying IronPDF to Azureをご覧ください。
必要な NuGet パッケージはどのようにインストールしますか?
NuGetパッケージマネージャを使用してパッケージをインストールします。 IronPdf および 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" />
// 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" />
' Install via Package Manager Console
' Install-Package IronPdf
' Install-Package Razor.Templating.Core
' Or add to your .vbproj 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>
<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 に、このコードを追加してください。 RenderAsync を使用して Razor.Templating.Core から Razor ビューを HTML に変換し、その後 ChromePdfRenderer をインスタンス化して、その HTML を RenderHtmlAsPdf に渡します。 カスタムテキスト、ヘッダー、フッター、余白、ページ番号には 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");
});
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.Builder
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()
' 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);
}
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
Public Class PdfGenerator
Public Shared Async Function GeneratePdfAsync() As Task(Of IResult)
Try
Dim html = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml")
Dim renderer = 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
End Function
End Class
詳細ログはいつ有効にすべきですか?
開発中やトラブルシューティング中に詳細なロギングができるようにします。 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、コンテナ化されたアプリケーションを含むクラウド環境で優れた機能を発揮し、スケーラブルなドキュメント生成サービスに最適です。

