ASP.NETのC#でRazorページをPDFに変換する方法
IronPDF は、RenderRazorToPdf メソッドを使用して、 ASP.NET CoreアプリケーションでRazor Pages (.cshtml ファイル) を PDF ドキュメントにシームレスに変換できるようにし、C# および HTML レンダリングを完全にサポートして、Web コンテンツからの PDF 生成を簡素化します。
Razorページは、C# と HTML を組み合わせて Web コンテンツを生成する、.cshtml 拡張子を持つファイルです。 .NET Coreでは、Razor PagesはWebアプリケーションのコードを整理するシンプルな方法で、読み取り専用や単純なデータ入力を行うシンプルなページに最適です。
ASP.NET Core Web Appは、ASP.NET Coreを使用して構築されたWebアプリケーションで、これは現代のWebアプリケーションを開発するためのクロスプラットフォームフレームワークです。
IronPDFは、ASP.NET Core Web Appプロジェクト内でRazor PagesからPDFファイルを作成するプロセスを簡素化します。 これにより、ASP.NET Core Web AppsでのPDF生成が簡単になります。
クイックスタート: Razor Pages を数秒で PDF に変換する
.NET CoreアプリケーションでRazor Pagesを高品質のPDFに変換します。 RenderRazorToPdf メソッドを使用すると、CSHTML ファイルを PDF ドキュメントに変換して、ワークフローを最適化し、ドキュメントの配布を強化できます。 このガイドでは、これを数分で達成するために必要な簡単な手順を説明します。
最小限のワークフロー(5ステップ)
- ASP.NETコアWebアプリでRazorページをPDFに変換するためのC#ライブラリをダウンロードする。
- データ用のモデルクラスを追加する
- 新しいRazorページを作成し、データを表示するために".cshtml "ファイルを編集してください。
- .cs "ファイルを編集し、`RenderRazorToPdf`メソッドを使用してください。
- クイックスタート用のサンプルプロジェクトをダウンロード
はじめに
Razor Pages は、ASP.NET Core アプリケーションで動的な Web コンテンツを構築するための強力かつ直感的な方法を提供します。 IronPDFのレンダリング機能と組み合わせることで、開発者はウェブコンテンツから直接プロフェッショナルなPDFドキュメントを作成することができます。 このアプローチでは、複雑なPDF生成ロジックを排除し、既存のHTMLとCSSのスキルを使用することができます。
IronPdfとRazor Pagesの統合は、レポート、請求書、証明書、その他ダイナミックなデータ表示が必要な文書の作成に特に有効です。 すでに使い慣れたRazorの構文を使用することで、WebビューとPDF出力の一貫性を保つことができます。
どの NuGet パッケージが Razor から PDF への変換に必要ですか?
IronPdf.Extensions.Razor パッケージは、メインのIronPdfパッケージの拡張です。 ASP.NET Core Web アプリでRazor Pages を PDF ドキュメントにレンダリングするには、IronPdf.Extensions.Razor と IronPdf の両方のパッケージが必要です。詳細なインストール手順については、インストール概要ガイドをご覧ください。
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
インストール-パッケージ IronPdf.Extensions.Razor
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
インストール-パッケージ IronPdf.Extensions.Razor
Install with NuGet
Install-Package IronPdf.Extensions.Razor
どのようにASP.NET CoreでRazorページをPDFに変換しますか?
Razor PagesをPDFファイルに変換するには、ASP.NET Core Web Appプロジェクトが必要です。 このプロセスでは、データのモデルを作成し、そのデータを表示するためのRazorページを設定し、IronPDF の RenderRazorToPdf メソッドを使用して PDF 出力を生成します。
なぜPDF生成にモデルクラスが必要なのか
モデルクラスは、Razor Pages のデータ表現のバックボーンとして機能します。 これらのツールは、コントローラロジックからビューにデータを渡すための構造化された方法を提供し、型の安全性と保守性を保証します。 PDFを作成する場合、これらのモデルは、最終的なドキュメントに表示されるデータの正確な構造を定義するため、さらに重要になります。
- プロジェクトに新しいフォルダを作成し、"Models"と名付けます。
- フォルダに標準的なC#クラスを追加し、"Person"と名付けます。このクラスは個々のデータのモデルとして使用されます。 次のコードスニペットを使用してください。
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-razor-model.cs
namespace RazorPageSample.Models
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
}
Namespace RazorPageSample.Models
Public Class Person
Public Property Id() As Integer
Public Property Name() As String
Public Property Title() As String
Public Property Description() As String
End Class
End Namespace
PDF変換用にRazorページを設定するにはどうすればよいですか?
"Pages"フォルダに空のRazor Pageを追加し、"persons.cshtml"と名付けます。
- 新しく作成された "Persons.cshtml "ファイルを、以下で提供されるコードサンプルを使用して修正してください。
以下のコードは、ブラウザに情報を表示します。 Razorの構文により、HTML内にC#コードをシームレスに統合できるため、PDFに変換可能な動的コンテンツの生成に最適であることに注目してください:
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in ViewData["personList"] as List<Person>)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<form method="post">
<button type="submit">Print</button>
</form>
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in ViewData["personList"] as List<Person>)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<form method="post">
<button type="submit">Print</button>
</form>
Razor PagesをPDFにレンダリングする
次に、次のコードはChromePdfRendererクラスをインスタンス化します。 これをRenderRazorToPdf メソッドに渡すだけで、このRazorページを PDF ドキュメントに変換できます。
あなたは、RenderingOptionsで利用可能な機能に完全にアクセスできます。 これらの機能には、生成されたPDFにページ番号を適用する機能、カスタムマージンを設定する機能、カスタムテキストやHTMLヘッダーとフッターを追加する機能などが含まれます。 また、文書の適切な識別と検索性を確保するために、PDFにメタデータを設定することもできます。
- "Persons.cshtml"ファイルを開くと、"Persons.cshtml.cs"ファイルが表示されます。
- 以下のコードで"Persons.cshtml.cs"を修正します。
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;
namespace RazorPageSample.Pages
{
public class PersonsModel : PageModel
{
[BindProperty(SupportsGet = true)]
public List<Person> Persons { get; set; }
// Handle GET request to load initial data
public void OnGet()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
}
// Handle POST request to convert Razor page to PDF
public IActionResult OnPost()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render Razor Page to PDF document
PdfDocument pdf = renderer.RenderRazorToPdf(this);
// Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
// Optionally view the output PDF in browser (uncomment below line if needed)
// return File(pdf.BinaryData, "application/pdf");
}
}
}
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;
namespace RazorPageSample.Pages
{
public class PersonsModel : PageModel
{
[BindProperty(SupportsGet = true)]
public List<Person> Persons { get; set; }
// Handle GET request to load initial data
public void OnGet()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
}
// Handle POST request to convert Razor page to PDF
public IActionResult OnPost()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render Razor Page to PDF document
PdfDocument pdf = renderer.RenderRazorToPdf(this);
// Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
// Optionally view the output PDF in browser (uncomment below line if needed)
// return File(pdf.BinaryData, "application/pdf");
}
}
}
Imports IronPdf.Razor
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports RazorPageSample.Models
Namespace RazorPageSample.Pages
Public Class PersonsModel
Inherits PageModel
<BindProperty(SupportsGet := True)>
Public Property Persons() As List(Of Person)
' Handle GET request to load initial data
Public Sub OnGet()
Persons = New List(Of Person) From {
New Person With {
.Name = "Alice",
.Title = "Mrs.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Bob",
.Title = "Mr.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Charlie",
.Title = "Mr.",
.Description = "Software Engineer"
}
}
ViewData("personList") = Persons
End Sub
' Handle POST request to convert Razor page to PDF
Public Function OnPost() As IActionResult
Persons = New List(Of Person) From {
New Person With {
.Name = "Alice",
.Title = "Mrs.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Bob",
.Title = "Mr.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Charlie",
.Title = "Mr.",
.Description = "Software Engineer"
}
}
ViewData("personList") = Persons
Dim renderer As New ChromePdfRenderer()
' Render Razor Page to PDF document
Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)
' Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline")
Return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf")
' Optionally view the output PDF in browser (uncomment below line if needed)
' return File(pdf.BinaryData, "application/pdf");
End Function
End Class
End Namespace
RenderRazorToPdf メソッドは、追加の処理および編集が可能なPdfDocumentオブジェクトを返します。 PDF を PDFA または PDFUA としてエクスポートしたり、レンダリングされた PDF ドキュメントにデジタル署名を適用したり、PDF ドキュメントを結合および分割したりできます。 この方法では、ページの回転、注釈やしおりの追加、PDFへのカスタム透かしのスタンプも可能です。
文書管理を強化するために、品質を損なうことなくファイルサイズを縮小するためにPDFを圧縮することもできます。 これは、大規模なレポートを扱う場合や、帯域幅が懸念される場合に特に役立ちます。 さらに、IronPDFが提供する幅広い編集機能については、包括的なPDF編集チュートリアルで説明しています。
PDF生成ページにナビゲーションを追加するには?
ナビゲーションは、ASP.NET Coreアプリケーションのユーザーエクスペリエンスにとって非常に重要です。 PDF生成ページをメインナビゲーションに統合することで、ユーザーはURLを手入力することなく、簡単に機能にアクセスすることができます。
- Pagesフォルダ -> Sharedフォルダ -> _Layout.cshtmlに移動します。 "Home"の後に"Person"ナビゲーション項目を配置します。
asp-page 属性の値がファイル名 (この場合は "Persons") と完全に一致していることを確認します。 これにより、ASP.NET Coreアプリケーション内での適切なルーティングが保証されます:
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
PDF生成を実行するとどうなりますか?
これは、プロジェクトを実行し、PDFドキュメントを生成する方法を示しています。 Person"ナビゲーションリンクをクリックすると、データが表形式で表示されます。 Print "ボタンをクリックすると、PDF生成プロセスが開始され、現在のRazor Pageビューがダウンロード可能なPDFドキュメントに変換されます。
生成されるPDFは、Razorページのすべてのスタイルと書式を維持し、ウェブビューとPDF出力の間で一貫した外観を保証します。 このアプローチは、レポートや請求書の作成、またはアプリケーションのデータベースやビジネスロジックからのデータを必要とする文書の作成に特に役立ちます。
完全なASP.NET Core Webアプリの例はどこでダウンロードできますか?
このガイドの完全なコードをVisual Studioで開くことができるASP.NET Core Web Appプロジェクトとしてzipファイルでダウンロードできます。
よくある質問
ASP.NET CoreでRazor PagesをPDFに変換するには?
IronPDF の RenderRazorToPdf メソッドを使用して、ASP.NET Core で Razor Pages を PDF に変換することができます。IronPDF.Extensions.Razorパッケージをインストールし、ChromePdfRendererを使って.cshtmlファイルを直接PDFドキュメントにレンダリングします。
Razor から PDF への変換に必要な NuGet パッケージは何ですか?
2つのNuGetパッケージが必要です:IronPDF.Extensions.Razor(拡張パッケージ)とIronPDF(メインパッケージ)です。どちらのパッケージもASP.NET Core Web AppsでRazor PagesをPDFドキュメントにレンダリングするために必要です。
PDFに変換する際、Razor Pagesでダイナミックデータを使用できますか?
はい、IronPDFはRazor Pagesのダイナミックデータを完全にサポートしています。C#コード、モデルバインディング、すべての標準的なRazor構文機能をPDFに変換する際に使用することができ、動的コンテンツを含むレポート、請求書、証明書の生成に最適です。
Razor Pages からどのような文書を作成できますか?
IronPDFのRazorからPDFへの変換は、レポート、請求書、証明書、領収書、その他既存のHTMLやCSSのスタイルを維持しながらダイナミックなデータ表示が必要なドキュメントなど、様々なドキュメントタイプの生成に最適です。
Razor から PDF への変換をプロジェクトに導入するには、どのくらい時間がかかりますか?
IronPDFを使えば数分でRazorからPDFへの変換を実装できます。ライブラリのインストール、モデルクラスの追加、Razorページの作成、RenderRazorToPdfメソッドを使用するための.csファイルの編集、そしてアプリケーションの実行です。
HTMLとCSSのスタイリングは維持されますか?
はい、IronPDFはRazor PagesをPDFに変換する際、HTMLとCSSのスタイルを保持します。これにより、すでに作成した同じスタイリングとレイアウトを使用して、WebビューとPDF出力の一貫性を維持することができます。

