IRONPDFの使用

ASP .NETでレポートを作成する方法

公開済み 2024年4月3日
共有:

レポートはデータを構造化された視覚的に魅力的な形式で提示するために不可欠です。 売上データ、分析、または財務概要など、レポートの生成はウェブアプリケーションにおける一般的な要件です。 マイクロソフトWeb Forms Report Viewer Controlを使用してウェブアプリケーションに統合できるRDLCレポートサービスを提供します。 しかし、そのプロセスはしばしば複雑で時間がかかることがあります。

ここにIronPDFが登場します。 IronPDFは、多機能なライブラリであり、ASP.NETやその他のウェブフレームワークでのPDFレポート生成を簡素化し、強力な機能と使いやすさを提供します。 この記事では、IronPDFを使用してASP.NETでレポートを作成する方法について探ります。

ASP.NETでレポートを作成する方法

  1. Visual Studioを使用してASP.NET Webアプリを作成する

  2. IronPDFIronPDF.Extensions.MVC.Core をインストールします

  3. ChromePdfRenderer オブジェクト sender をインスタンス化する

  4. RenderRazorViewToPdf メソッドを呼び出して、ビューをPDFに変換します。

  5. Response.Headers.Appendを使用して「Content-Disposition」を追加

  6. レポートを作成するには、File メソッドを使用して PDF.BinaryData を使用します。

IronPDFの紹介

IronPDFは、ASP.NETおよびその他のウェブフレームワークでPDFドキュメントの生成を簡単にする多用途なライブラリです。 豊富な機能セットと直感的なAPIにより、webアプリケーションから直接動的なレポート、請求書、領収書などを生成しようとしている開発者にとって理想的な選択肢となります。 IronPDFを使用すると、開発者はHTML、CSS、さらにはRazorビューを高品質なPDFドキュメントに容易に変換でき、ASP.NETプロジェクトに報告機能をシームレスに統合することができます。

IronPDFの機能

  • HTML to PDF変換: CSSスタイルを含むHTMLコンテンツを簡単に高品質なPDFドキュメントに変換できます。
  • PDF編集: 既存のPDFドキュメントにテキスト、画像、注釈を追加または削除します。
  • PDFフォーム入力: ウェブアプリケーションのデータを使用してPDFフォームを動的に入力します。
  • バーコード生成: 製品ラベルや在庫管理のために、PDFドキュメント内でバーコードおよびQRコードを生成します。
  • ウォーターマーキング: 敏感な情報を保護したり、文書にブランドを付けるためにPDFページにウォーターマークを追加します。
  • 暗号化とセキュリティ: 暗号化、パスワード、および権限設定によってPDFドキュメントを保護します。

前提条件

始める前に、以下の前提条件を確認してください:

  • ASP.NET開発の基本知識。
  • ビジュアルスタジオマシンにインストールされています。
  • IronPDF と IronPDF.Extensions.Mvc.Core

Visual StudioでASP.NETプロジェクトを作成する手順

  1. Visual Studioを開き、新しいASP.NET Coreプロジェクトを作成します。

  2. 希望するプロジェクトテンプレートを選択してください(例えば、MVCやRazor Pages).

    ASP.NETでレポートを作成する方法:図1

  3. プロジェクト名、場所、およびフレームワークバージョンなどのプロジェクト設定を構成します。

    ASP.NETでレポートを作成する方法:図2

  4. 「Create」をクリックしてプロジェクト構造を生成します。

IronPDFとIronPDF.Extensions.Mvc.Coreのインストール

次に、NuGetパッケージマネージャーを使用してIronPDFとそのMVC拡張パッケージをインストールしましょう:

  1. ソリューション エクスプローラーを右クリックして、ソリューション用 NuGet パッケージ マネージャーを開きます。

  2. IronPDF」および「IronPDF.Extensions.Mvc.Core」を検索。

    ASP .NETでレポートを作成する方法: 図3

  3. 両方のパッケージをソリューションにインストールします。

ASP.NETウェブアプリケーションでレポートビューアを作成する手順

では、IronPDFを使用してASP.NETプロジェクトでPDFレポートを作成する手順を見ていきましょう。 ビューをレポートに変換する前に、モデル、ビュー、およびコントローラーが必要です。これは、PDF形式で新しいレポートを作成およびダウンロードするためのデータソースを作成するためです。

ステップ 1: モデルクラスを定義する

まず、モデルクラスを作成します(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
VB   C#

ステップ 2: 新しい Web フォーム ビューを作成

次に、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>
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>
VB   C#

ASP .NETでレポートを作成する方法: 図 4

ステップ3: ビューレンダーサービスの登録

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)()
VB   C#

ステップ3:Web APIコントローラークラスを実装する

コントローラーを実装する(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
VB   C#

上記のコードでは、コンストラクター内でIRazorViewRendererサービスがプライベートフィールド_viewRenderServiceに割り当てられています。 さらに、コントローラーは、デモンストレーション用に販売情報を表す SalesModel クラスのインスタンスを含む salesData と名付けられたリストを初期化します。

購入()このアクションメソッドは、モデルとして salesData リストを渡し、「Sales」という名前のビューを返します。 このアクションは、関連ビューで販売データをレンダリングし、ユーザーが販売情報を表形式またはその他の希望するレイアウトで視覚化できるようにします。

ASP .NETでのレポート作成方法: 図5

ステップ 4: PDFレポートを生成

コントローラの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
VB   C#

以下のコードの動作を詳しく理解しましょう:

  1. ライセンスキーの設定:

    • License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

    • この行はIronPDFに必要なライセンスキーを設定します。 アプリケーション内でIronPDFの機能を使用するためには、これが不可欠です。
  2. レンダラーの初期化:

    クロムPdfRenderer レンダラー = new ChromePdfRenderer();**

    • ChromePdfRenderer のインスタンスが作成されます。 このレンダラーは、Chromiumブラウザエンジンを使用してRazorビューをPDFフォーマットに変換する役割を担っています。
  3. ビューのレンダリングをPDFに変換:

    • PdfDocument PDF = レンダラー.RenderRazorViewToPdf(_viewRenderService、"Views/Sales/Sales.cshtml"、salesData);

      • PDF method in IronPDF for .NET** allows developers to convert Razor views to PDF documents. This is particularly useful for web applications that need to generate printable reports or invoices directly from HTML views.

Key Features:

  1. Simple API: Easy to integrate and requires minimal code changes.
  2. Full HTML5/CSS3 Support: Ensures that the rendered PDF looks exactly like the HTML view.
  3. Custom Headers and Footers: Add dynamic headers and footers to your PDF documents.
  4. Support for JavaScript: Fully supports rendering JavaScript code within PDF files.

Example:

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")
VB   C#

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 .NETRenderRazorViewToPdf メソッドは、Razor ビューをPDFドキュメントに変換することができます。これは、HTMLビューから直接印刷可能なレポートや請求書を生成する必要のあるWebアプリケーションに特に便利です。

主な機能:

  1. シンプルなAPI: 統合が簡単で、コードの変更は最小限に抑えられます。
  2. フルHTML5/CSS3サポート: レンダリングされたPDFがHTMLビューと完全に一致することを保証します。
  3. カスタムヘッダーとフッター: 動的なヘッダーとフッターをPDFドキュメントに追加できます。
  4. JavaScriptサポート: PDFファイル内でJavaScriptコードのレンダリングを完全にサポートします。

例:

こちらは 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")
VB   C#

このメソッドは IronPDF ライブラリの一部であり、.NET環境でPDFファイルを操作するための堅牢で多機能なツールを提供します。

詳細については、IronPDF for .NET ドキュメントをご覧ください。()指定されたRazorビューをレンダリングするためにChromePdfRendererのメソッドが呼び出されます。(Views/Sales/Sales.cshtml)PDFドキュメントへ。 salesData 変数はビューのモデルとして機能します。

  1. Content-Disposition ヘッダー:

    • **Response.Headers.Append

レスポンス.ヘッダー.Append(「Content-Disposition」、「inline」);**

* HTTPレスポンスヘッダー**Content-Disposition**は**"inline"**に設定されています。 これは、ブラウザにPDFコンテンツを直接表示するよう指示し、ブラウザのウィンドウまたはタブ内でレポートを表示できるようにします。
  1. PDFファイルを返す:

    • **ファイルを返す(pdf.BinaryData, "application/pdf", "SalesReport.pdf"

(この部分は翻訳しなくても、日本語圏の技術者にはそのままで十分に理解されるため翻訳を行いません));**

* PDFドキュメントの内容は**FileContentResult**として返されます。 それはPDFのバイナリデータが含まれます。(**pdf.BinaryData(バイナリデータ)**)MIMEタイプを**「application/pdf」**として指定し、ファイル名を**「SalesReport.pdf」**と提案します。

全体として、このメソッドはRazorビューからPDFレポートを生成するプロセスを効率的に調整し、ASP.NETアプリケーション内での統合に適しており、報告能力を強化します。

ASP .NETでレポートを作成する方法: 図6

PDFレポート生成や他のPDF関連タスクを簡素化するIronPDFの詳細情報については、以下のリンクを参照してください。ドキュメントページ

結論

この記事では、IronPDF が ASP.NET アプリケーションで PDF レポートを生成するプロセスをいかに簡素化するかについて探りました。 上記のステップバイステップガイドに従って、 IronPDF を ASP.NET プロジェクトに迅速に統合し、動的なPDFレポートを簡単に生成することができます。

豊富な機能セットとシームレスな統合により、IronPDF は開発者に対し、ユーザーや企業のニーズに応えるプロフェッショナル品質のレポートを作成する力を与えます。

IronPDFは無料体験. ライブラリを以下からダウンロード[以下の内容を日本語に翻訳します:

ここに

ご希望のイディオムや技術用語が追加されることによって、より適切な翻訳が提供できる場合もありますので、詳細なコンテキストを教えていただけると幸いです。](/)そしてお試しください。

< 以前
C#でレポート作成アプリケーションを作成する方法
次へ >
PDFドキュメントからデータを解析する方法