ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
レポートはデータを構造化された視覚的に魅力的な形式で提示するために不可欠です。 売上データ、分析、または財務概要など、レポートの生成はウェブアプリケーションにおける一般的な要件です。 マイクロソフトWeb Forms Report Viewer Controlを使用してウェブアプリケーションに統合できるRDLCレポートサービスを提供します。 しかし、そのプロセスはしばしば複雑で時間がかかることがあります。
ここにIronPDFが登場します。 IronPDFは、多機能なライブラリであり、ASP.NETやその他のウェブフレームワークでのPDFレポート生成を簡素化し、強力な機能と使いやすさを提供します。 この記事では、IronPDFを使用してASP.NETでレポートを作成する方法について探ります。
Visual Studioを使用してASP.NET Webアプリを作成する
IronPDF と IronPDF.Extensions.MVC.Core をインストールします
ChromePdfRenderer オブジェクト sender をインスタンス化する
RenderRazorViewToPdf メソッドを呼び出して、ビューをPDFに変換します。
Response.Headers.Appendを使用して「Content-Disposition」を追加
IronPDFは、ASP.NETおよびその他のウェブフレームワークでPDFドキュメントの生成を簡単にする多用途なライブラリです。 豊富な機能セットと直感的なAPIにより、webアプリケーションから直接動的なレポート、請求書、領収書などを生成しようとしている開発者にとって理想的な選択肢となります。 IronPDFを使用すると、開発者はHTML、CSS、さらにはRazorビューを高品質なPDFドキュメントに容易に変換でき、ASP.NETプロジェクトに報告機能をシームレスに統合することができます。
始める前に、以下の前提条件を確認してください:
Visual Studioを開き、新しいASP.NET Coreプロジェクトを作成します。
希望するプロジェクトテンプレートを選択してください(例えば、MVCやRazor Pages).
プロジェクト名、場所、およびフレームワークバージョンなどのプロジェクト設定を構成します。
次に、NuGetパッケージマネージャーを使用してIronPDFとそのMVC拡張パッケージをインストールしましょう:
ソリューション エクスプローラーを右クリックして、ソリューション用 NuGet パッケージ マネージャーを開きます。
「IronPDF」および「IronPDF.Extensions.Mvc.Core」を検索。
では、IronPDFを使用してASP.NETプロジェクトでPDFレポートを作成する手順を見ていきましょう。 ビューをレポートに変換する前に、モデル、ビュー、およびコントローラーが必要です。これは、PDF形式で新しいレポートを作成およびダウンロードするためのデータソースを作成するためです。
まず、モデルクラスを作成します(SalesModel.cs
営業モデル.cs)販売データを表すために。 このサンプルSalesModelクラスには、Date、ProductName、Quantity、UnitPrice、およびTotalAmountといったプロパティが含まれます。 これは、Microsoft SQL ServerやMySQL Serverのようなデータソースから情報を取得する際に便利です。
namespace ReportGenerator.Models
{
public class SalesModel
{
public DateTime Date { get; set; }
public string ProductName { get; set; }
public int Quantity { get; set; }
public decimal UnitPrice { get; set; }
public decimal TotalAmount => Quantity * UnitPrice;
}
}
namespace ReportGenerator.Models
{
public class SalesModel
{
public DateTime Date { get; set; }
public string ProductName { get; set; }
public int Quantity { get; set; }
public decimal UnitPrice { get; set; }
public decimal TotalAmount => Quantity * UnitPrice;
}
}
Namespace ReportGenerator.Models
Public Class SalesModel
Public Property [Date]() As DateTime
Public Property ProductName() As String
Public Property Quantity() As Integer
Public Property UnitPrice() As Decimal
Public ReadOnly Property TotalAmount() As Decimal
Get
Return Quantity * UnitPrice
End Get
End Property
End Class
End Namespace
次に、Razorビューを作成します(Sales.cshtml(セールス.cshtml))売上データを表形式で表示し、PDFレポートを生成するためのボタンを提供します。
<!-- Index.cshtml -->
@model List<SalesModel>
<!DOCTYPE html>
<html>
<head>
<title>Sales Report</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
th {
background-color: #f2f2f2;
}
</style>
</head>
<body>
<h2>Sales Report</h2>
<table>
<tr>
<th>Date</th>
<th>Product Name</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Total Amount</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Date.ToShortDateString()</td>
<td>@item.ProductName</td>
<td>@item.Quantity</td>
<td>@item.UnitPrice.ToString("C")</td>
<td>@item.TotalAmount.ToString("C")</td>
</tr>
}
</table>
<br />
@using (Html.BeginForm("GeneratePdf", "Sales", FormMethod.Post))
{
<button type="submit">Generate PDF Report</button>
}
</body>
</html>
<!-- Index.cshtml -->
@model List<SalesModel>
<!DOCTYPE html>
<html>
<head>
<title>Sales Report</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
th {
background-color: #f2f2f2;
}
</style>
</head>
<body>
<h2>Sales Report</h2>
<table>
<tr>
<th>Date</th>
<th>Product Name</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Total Amount</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Date.ToShortDateString()</td>
<td>@item.ProductName</td>
<td>@item.Quantity</td>
<td>@item.UnitPrice.ToString("C")</td>
<td>@item.TotalAmount.ToString("C")</td>
</tr>
}
</table>
<br />
@using (Html.BeginForm("GeneratePdf", "Sales", FormMethod.Post))
{
<button type="submit">Generate PDF Report</button>
}
</body>
</html>
次に、Views->Sharedフォルダーにある _Layout.cshtml ファイルに「Sales」をメニュー項目として追加し、レポートウィザードビューを作成します。
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Sales" asp-action="Sales">Sales</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Sales" asp-action="Sales">Sales</a>
</li>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-controller="Sales" asp-action="Sales"> Sales</a> </li>
Program.csファイルにビューのレンダーサービスを登録することは、適切に依存性注入が機能するために非常に重要です。 以下のコードを Program.cs ファイルに追加して、IRazorViewRenderer サービスを登録します:
// Register the IRazorViewRenderer service
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
// Register the IRazorViewRenderer service
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
' Register the IRazorViewRenderer service
builder.Services.AddSingleton(Of IRazorViewRenderer, RazorViewRenderer)()
コントローラーを実装する(SalesController.cs(セールスコントローラー.cs))セールスビューをレンダリングし、PDFレポートを生成するアクションと一緒に。 コントローラのコンストラクタに、IronPDF が提供する IRazorViewRenderer サービスを注入します。
using ReportGenerator.Models;
namespace ReportGenerator.Controllers
{
public class SalesController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
private readonly List<SalesModel> salesData;
public SalesController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
// Example data with sales information
salesData = new List<SalesModel>
{
new SalesModel { Date = DateTime.Parse("2024-03-01"), ProductName = "Product A", Quantity = 10, UnitPrice = 50.00m },
new SalesModel { Date = DateTime.Parse("2024-03-02"), ProductName = "Product B", Quantity = 15, UnitPrice = 40.00m },
new SalesModel { Date = DateTime.Parse("2024-03-03"), ProductName = "Product C", Quantity = 20, UnitPrice = 30.00m }
// Add more data as needed
};
}
public IActionResult Sales()
{
// Renders the data in Sales view
return View(salesData);
}
}
}
using ReportGenerator.Models;
namespace ReportGenerator.Controllers
{
public class SalesController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
private readonly List<SalesModel> salesData;
public SalesController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
// Example data with sales information
salesData = new List<SalesModel>
{
new SalesModel { Date = DateTime.Parse("2024-03-01"), ProductName = "Product A", Quantity = 10, UnitPrice = 50.00m },
new SalesModel { Date = DateTime.Parse("2024-03-02"), ProductName = "Product B", Quantity = 15, UnitPrice = 40.00m },
new SalesModel { Date = DateTime.Parse("2024-03-03"), ProductName = "Product C", Quantity = 20, UnitPrice = 30.00m }
// Add more data as needed
};
}
public IActionResult Sales()
{
// Renders the data in Sales view
return View(salesData);
}
}
}
Imports ReportGenerator.Models
Namespace ReportGenerator.Controllers
Public Class SalesController
Inherits Controller
Private ReadOnly _viewRenderService As IRazorViewRenderer
Private ReadOnly salesData As List(Of SalesModel)
Public Sub New(ByVal viewRenderService As IRazorViewRenderer)
_viewRenderService = viewRenderService
' Example data with sales information
salesData = New List(Of SalesModel) From {
New SalesModel With {
.Date = DateTime.Parse("2024-03-01"),
.ProductName = "Product A",
.Quantity = 10,
.UnitPrice = 50.00D
},
New SalesModel With {
.Date = DateTime.Parse("2024-03-02"),
.ProductName = "Product B",
.Quantity = 15,
.UnitPrice = 40.00D
},
New SalesModel With {
.Date = DateTime.Parse("2024-03-03"),
.ProductName = "Product C",
.Quantity = 20,
.UnitPrice = 30.00D
}
}
End Sub
Public Function Sales() As IActionResult
' Renders the data in Sales view
Return View(salesData)
End Function
End Class
End Namespace
上記のコードでは、コンストラクター内でIRazorViewRendererサービスがプライベートフィールド_viewRenderServiceに割り当てられています。 さらに、コントローラーは、デモンストレーション用に販売情報を表す SalesModel クラスのインスタンスを含む salesData と名付けられたリストを初期化します。
購入()このアクションメソッドは、モデルとして salesData リストを渡し、「Sales」という名前のビューを返します。 このアクションは、関連ビューで販売データをレンダリングし、ユーザーが販売情報を表形式またはその他の希望するレイアウトで視覚化できるようにします。
コントローラのGeneratePdfアクション内で、IronPDFのChromePdfRendererを使用してPDFをレンダリングします。RazorビューをPDFに変換レポート文書。 適切なレスポンスヘッダーを設定し、PDFファイルをクライアントに返します。
public FileContentResult GeneratePdf()
{
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render View to PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);
Response.Headers.Append("Content-Disposition", "inline");
// Output PDF document
return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
}
public FileContentResult GeneratePdf()
{
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render View to PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);
Response.Headers.Append("Content-Disposition", "inline");
// Output PDF document
return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
}
Public Function GeneratePdf() As FileContentResult
License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
Dim renderer As New ChromePdfRenderer()
' Render View to PDF document
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData)
Response.Headers.Append("Content-Disposition", "inline")
' Output PDF document
Return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf")
End Function
以下のコードの動作を詳しく理解しましょう:
ライセンスキーの設定:
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";。
レンダラーの初期化:
クロムPdfRenderer レンダラー = new ChromePdfRenderer();**
ビューのレンダリングをPDFに変換:
PdfDocument PDF = レンダラー.RenderRazorViewToPdf(_viewRenderService、"Views/Sales/Sales.cshtml"、salesData);
Here's a basic example of how to use RenderRazorViewToPdf:
var renderer = new IronPdf.HtmlToPdf();
var pdf = renderer.RenderRazorViewToPdf("/Views/Home/Report.cshtml");
pdf.SaveAs("report.pdf");
var renderer = new IronPdf.HtmlToPdf();
var pdf = renderer.RenderRazorViewToPdf("/Views/Home/Report.cshtml");
pdf.SaveAs("report.pdf");
Dim renderer = New IronPdf.HtmlToPdf()
Dim pdf = renderer.RenderRazorViewToPdf("/Views/Home/Report.cshtml")
pdf.SaveAs("report.pdf")
This method is a part of the IronPDF library, which provides robust and feature-rich tools to work with PDF files in .NET environments.
For more information, visit the IronPDF for .NET documentation.
アイロンソフトウェアの製品である IronPDF for .NET の RenderRazorViewToPdf メソッドは、Razor ビューをPDFドキュメントに変換することができます。これは、HTMLビューから直接印刷可能なレポートや請求書を生成する必要のあるWebアプリケーションに特に便利です。
こちらは RenderRazorViewToPdf の基本的な使用例です:
var renderer = new IronPdf.HtmlToPdf();
var pdf = renderer.RenderRazorViewToPdf("/Views/Home/Report.cshtml");
pdf.SaveAs("report.pdf");
var renderer = new IronPdf.HtmlToPdf();
var pdf = renderer.RenderRazorViewToPdf("/Views/Home/Report.cshtml");
pdf.SaveAs("report.pdf");
Dim renderer = New IronPdf.HtmlToPdf()
Dim pdf = renderer.RenderRazorViewToPdf("/Views/Home/Report.cshtml")
pdf.SaveAs("report.pdf")
このメソッドは IronPDF ライブラリの一部であり、.NET環境でPDFファイルを操作するための堅牢で多機能なツールを提供します。
詳細については、IronPDF for .NET ドキュメントをご覧ください。()指定されたRazorビューをレンダリングするためにChromePdfRendererのメソッドが呼び出されます。(Views/Sales/Sales.cshtml)PDFドキュメントへ。 salesData 変数はビューのモデルとして機能します。
Content-Disposition ヘッダー:
レスポンス.ヘッダー.Append(「Content-Disposition」、「inline」);**
* HTTPレスポンスヘッダー**Content-Disposition**は**"inline"**に設定されています。 これは、ブラウザにPDFコンテンツを直接表示するよう指示し、ブラウザのウィンドウまたはタブ内でレポートを表示できるようにします。
PDFファイルを返す:
(この部分は翻訳しなくても、日本語圏の技術者にはそのままで十分に理解されるため翻訳を行いません));**
* PDFドキュメントの内容は**FileContentResult**として返されます。 それはPDFのバイナリデータが含まれます。(**pdf.BinaryData(バイナリデータ)**)MIMEタイプを**「application/pdf」**として指定し、ファイル名を**「SalesReport.pdf」**と提案します。
全体として、このメソッドはRazorビューからPDFレポートを生成するプロセスを効率的に調整し、ASP.NETアプリケーション内での統合に適しており、報告能力を強化します。
PDFレポート生成や他のPDF関連タスクを簡素化するIronPDFの詳細情報については、以下のリンクを参照してください。ドキュメントページ
この記事では、IronPDF が ASP.NET アプリケーションで PDF レポートを生成するプロセスをいかに簡素化するかについて探りました。 上記のステップバイステップガイドに従って、 IronPDF を ASP.NET プロジェクトに迅速に統合し、動的なPDFレポートを簡単に生成することができます。
豊富な機能セットとシームレスな統合により、IronPDF は開発者に対し、ユーザーや企業のニーズに応えるプロフェッショナル品質のレポートを作成する力を与えます。
IronPDFは無料体験. ライブラリを以下からダウンロード[以下の内容を日本語に翻訳します:
ここに
ご希望のイディオムや技術用語が追加されることによって、より適切な翻訳が提供できる場合もありますので、詳細なコンテキストを教えていただけると幸いです。](/)そしてお試しください。
9つの .NET API製品 オフィス文書用