IronPDF Razor拡張

チャクニット・ビン
チャクニット・ビン
2023年1月25日
更新済み 2024年10月20日
共有:
This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDFは.NETと.NET CoreのためのPDFライブラリです。 IronPDFは商用C# PDFライブラリであるため、ほとんどがフリーのPDFライブラリです。 開発に関しては無料ですが、商用展開にはライセンスが必要です。 このより明確なライセンスモデルでは、開発者がGNU / AGPLライセンスモデルの細部を学ぶ必要がなく、自分のプロジェクトに集中することができます。

IronPDFは.NETと.NET Coreの開発者が.NET Coreと.NET FrameworkのためにC#、F#、VB.NETで簡単にPDFコンテンツを生成、結合、分割、編集、抽出することを可能にし、HTML、ASPX、CSS、JS、画像ファイルからPDFを作成することもできます。

IronPDFは、HTMLからPDFへの変換を通じて、包括的なPDF編集および生成機能を提供します。 それはどのように動作しますか? ほとんどのドキュメントデザインとレイアウトは既存のHTMLおよびHTML5アセットを使用できます。

C# Razor-to-PDFの例としてのプロジェクトを、IronPDF Razor View to PDFダウンロードからダウンロードできます。

.NETおよび.NET Coreアプリケーション向けのIronPDF機能

IronPDF PDFライブラリの素晴らしい機能をいくつか紹介します:

  • .NET PDFライブラリは、HTML、画像、およびASPXファイルからPDFドキュメントを生成できます。
  • .NETおよび.NET CoreアプリケーションでPDFテキストを読み取る
  • PDFからデータと画像を抽出する
  • PDF文書の結合
  • PDF分割
  • PDFの操作

IronPDFの利点

  • IronPDF PDFライブラリは簡単にインストールできます。
  • IronPDF .NETライブラリには迅速で簡単なライセンスオプションがあります。
  • IronPDFはほとんどの.NET PDFライブラリを凌駕し、ほとんどの.NET Core PDFライブラリを凌駕します。

IronPDFはあなたが探し求めていたPDFソリューションです。


IronPDF PDFライブラリのインストール

.NETまたは.NET CoreのPDF用IronPDFライブラリのインストールは非常に簡単です。 次の方法でインストールすることができます:

NuGetパッケージマネージャーを使用し、コマンドプロンプトに以下を入力してください:

Install-Package IronPdf

Visual StudioのNuGetパッケージマネージャを使って、プロジェクトメニューから "Selecting Manage NuGet Packages "を開き、IronPDFを検索してください:

**図1** - *IronPDF NuGetパッケージ* これはPDF拡張機能をインストールします。 IronPdfを使えば、ASP.NET MVCを使ってPDFファイルを返すことができます。いくつかのコード例を以下に示します: 以下に示されているように、コントローラーによって提供されるメソッドの例。 ```cs public FileResult Generate_PDF_FromHTML_Or_MVC(long id) { using var objPDF = Renderer.RenderHtmlAsPdf(""); //Create a PDF Document var objLength = objPDF.BinaryData.Length; //return a PDF document from a view Response.AppendHeader("Content-Length", objLength.ToString()); Response.AppendHeader("Content-Disposition", "inline; filename=PDFDocument_" + id + ".pdf"); return File(objPDF.BinaryData, "application/pdf;"); } ``` 既存のPDFをASP.NETで提供する例を以下に示します。 ```cs Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader("Content-Disposition", "attachment;filename=\"FileName.pdf\""); Response.BinaryWrite(System.IO.File.ReadAllBytes("PdfName.pdf")); Response.Flush(); Response.End(); ```
ASP.NETでMVCと.NET Coreを使用する簡単な例を見てみましょう。 Visual Studio を開き、新しい ASP.NET Core Web アプリケーションを作成してください。 ## 1.Visual Studioで新しいASP.NET Core Webプロジェクトを作成します。 [//]: # '画像ラッパーを使用してマージンを大きくする - フォーマット' ASP.NET Coreプロジェクトを作成
## 2. MVCモデルを作成する - 新しいフォルダを作成し、「Models」と名前を付けます。 [//]: # '画像ラッパーを使用してマージンを大きくする - フォーマット'
フォルダーを追加
- Modelフォルダを右クリックし、新しいクラスを追加します。 [//]: # '画像ラッパーを使用してマージンを大きくする - フォーマット'
クラスを追加
- クラス名を「ExampleModel」に変更します。 たとえば、モデルにコンテンツを追加します: ```cs namespace WebApplication4.Models { public class ExampleModel { public string Name { get; set; } public string Surname { get; set; } public int Age { get; set; } } } ```
## 3. MVCコントローラーを追加 - 新しいフォルダを作成し、「Controllers」と名付けます。 - Controllersフォルダを右クリックし、新しい "MCV controller - empty "を追加します。 [//]: # '画像ラッパーを使用してマージンを大きくする - フォーマット'
コントローラークラスを追加
コントローラーにコンテンツを追加: ```cs namespace WebApplication4.Models { public class HomeController : Controller { [HttpPost] public IActionResult ExampleView(ExampleModel model) { var html = this.RenderViewAsync("_Example", model); var ironPdfRender = new IronPdf.ChromePdfRenderer(); using var pdfDoc = ironPdfRender.RenderHtmlAsPdf(html.Result); return File(pdfDoc.Stream.ToArray(), "application/pdf"); } } } ```
## 4. Index.cshtml を変更 Pagesフォルダ内で、Index.cshtmlファイルを次のように修正します: ```html @page @model WebApplication4.Models.ExampleModel @{ ViewBag.Title = "Example Index View"; }

Index

@using (Html.BeginForm()) {
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
@Html.LabelFor(model => model.Surname, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.Surname, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Surname, "", new { @class = "text-danger" })
@Html.LabelFor(model => model.Age, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.Age, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model => model.Age, "", new { @class = "text-danger" })
}
```
## 5. Razorページを追加する PagesのSharedフォルダの中にRazorページを追加し、"_Example.cshtml "という名前を付けます。 [//]: # '画像ラッパーを使用してマージンを大きくする - フォーマット'
Razorページを追加
以下のコードを _Example.cshtml に追加してください: ```html @Html.Partial("../Index.cshtml") ```
## 新しいクラスを追加 - 新しいクラス名「ControllerPDF」を追加する このクラスは_Example.cshtmlのHTMLを_Layout.cshtmlでラップしてHomeController.csに返します。 - 以下のコードを追加してください: ```cs namespace WebApplication4 { public static class ControllerPDF { public static async Task RenderViewAsync(this Controller controller, string viewName, TModel model, bool partial = false) { if (string.IsNullOrEmpty(viewName)) { viewName = controller.ControllerContext.ActionDescriptor.ActionName; } controller.ViewData.Model = model; using (var writer = new StringWriter()) { IViewEngine viewEngine = controller.HttpContext.RequestServices.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine; ViewEngineResult viewResult = viewEngine.FindView(controller.ControllerContext, viewName, !partial); if (viewResult.Success == false) { return $"A view with the name {viewName} could not be found"; } ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, writer, new HtmlHelperOptions()); await viewResult.View.RenderAsync(viewContext); return writer.GetStringBuilder().ToString(); } } } } ```
## 7. Program.csを修正する 以下のコードを追加して、保存ボタンが押されたときにページが正しいURLにナビゲートされるようにしてください。 ```cs app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); ```
## デモンストレーション - Index.cshtmlから、asp-action="ExampleView"で保存ボタンが押されたときにExampleViewメソッドがアクティブになります。 - ControllerPDFクラスのRenderViewAsyncメソッドはExampleViewから呼び出されます。 このメソッドは、_layout.cshtmlでラップされた_Example.cshtmlの生成されたHTMLを返します。 - RenderViewAsyncからreturn HTMLをIronPDFのRenderHtmlAsPdfメソッドに渡してPDFドキュメントを生成する。 [//]: # '画像ラッパーを使用してマージンを大きくする - フォーマット' ASP.NET Coreプロジェクトを作成
チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。