IRONPDFの使用

C#でCSHTMLをPDFに変換する方法

更新済み 2024年3月10日
共有:

CSHTMLをPDFに変換することは、多くのアプリケーションにおいて一般的な要件です。 このタスクは、C#のIronPDFライブラリを使用して簡単に達成できます。

IronPDFは、開発者がPDFドキュメントをプログラムによって作成、読み取り、編集、および変換することを可能にする人気のある.NETライブラリです。 この記事では、C#でIronPDFを使用してCSHTMLをPDFに変換する手順を例とともにご紹介します。

始める前に、このチュートリアルに必要な重要な概念について説明しましょう。

重要な概念

PDFコンバーター

PDFコンバーターは、印刷可能なドキュメントやウェブページをPDFドキュメントに変換するツールです。 HTML、Word、Excel、その他の印刷可能なドキュメントからPDFファイルを生成するために使用できます。 PDFコンバータには、オンラインツール、デスクトップソフトウェア、ライブラリなどさまざまな形態があります。

Razorビューレンダリング

Razorビューは、HTMLページを動的に生成するためにASP.NET Coreで使用されるビューエンジンです。 それは、HTMLマークアップとC#コードを組み合わせたマークアップ構文です。

C#でCSHTMLをPDFに変換する方法、図1:Razorビュー

Razor View(レイザービュー)

Razorビューは、プレゼンテーションロジックをビジネスロジックから分離することにより、開発者が動的なウェブページを簡単に作成できるようにします。

コントローラークラス

コントローラークラスは、ASP.NET Coreアプリケーションで着信するHTTPリクエストを処理するC#クラスです。 それには特定のHTTP動詞に対応するメソッドが含まれています(例:GET、POST、PUT、DELETE)HTTP応答を返します。

NuGet パッケージマネージャー

NuGetパッケージマネージャーは、.NETプロジェクトでパッケージを管理するためにVisual Studioで使用されるツールです。 開発者がプロジェクトにパッケージをインストール、更新、アンインストールするのを簡単にします。 NuGetパッケージは再利用可能なコードを含み、NuGetパッケージマネージャーを通じて配布されるライブラリです。

依存性注入

依存性の注入(Dependency Injection)は、開発者が依存関係をクラスに注入することによって、アプリケーションのコンポーネントを分離することを可能にする設計パターンです。 依存関係を減らし、コードをよりモジュール化することで、アプリケーションのテストと保守が容易になります。

重要な概念を説明したので、IronPDFを使用してCSHTMLをPDFに変換するプロセスに入りましょう。

CSHTMLとは何ですか?

CSHTMLはC# Razor文法のHTMLを意味します。 それはHTMLマークアップとC#コードの両方を含むファイルの一種です。 これらのファイルは、webページのユーザーインターフェースを定義するために、ASP.NET Core MVCアプリケーションで使用されます。 RazorビュエンジンはCSHTMLファイルを解釈し、WebブラウザによってレンダリングされるHTML出力を生成するために使用されます。

C# で CSHTML を PDF に変換する方法、図 2: CSHTML5

CSHTML5(C# to HTML5コンパイラ)

IronPDFとは何ですか?

IronPDFは、開発者がC#でPDFドキュメントを作成、読み取り、編集、および変換することを可能にする強力な.NETライブラリです。 これは、.NETアプリケーションでプログラムによってPDFドキュメントを生成するための人気のあるツールです。 IronPDFは、PDF生成、PDF操作、PDF変換、およびPDFレンダリングを含む幅広い機能をサポートしています。

C#でCSHTMLをPDFに変換する方法、図3: IronPDF for .NET

IronPDF for .NET(IronPDF for .NET)

CSHTML HTML文字列をIronPDFでPDFファイルに変換する方法(C#)

IronPDFでCSHTMLをPDFに変換するのは簡単なプロセスです。 ライブラリはHTMLファイルをPDFドキュメントに変換するための便利なAPIを提供します。 以下は、CSHTMLをPDFに変換するためにIronPDFをC#で使用する手順です。

ステップ1 IronPDFをインストール

最初のステップは、インストールすることですNuGetパッケージマネージャからのIronPdfC#プロジェクトにて。 IronPDFをインストールするには、IronPDF.dllファイルをダウンロードし、プロジェクトリファレンスに追加してください。 NuGet パッケージマネージャーを使用して IronPDF をインストールするには、パッケージマネージャーコンソールを開き、次のコマンドを実行します。

Install-Package IronPdf

ステップ2 CSHTMLファイルの作成

次に、PDFに変換したい内容を含むCSHTMLファイルを作成します。 以下の例では、シンプルなCSHTMLチュートリアル"text "Hello, World" を表示するファイル!申し訳ありませんが、翻訳するための具体的なテキストが提供されていません。翻訳するコンテンツを提供していただければ、日本語に翻訳いたします。

@{
    Layout = null;
}
    Hello
    Hello, World!
@{
    Layout = null;
}
    Hello
    Hello, World!
@
If True Then
	Layout = Nothing
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'	Hello Hello, World!
VB   C#

このファイルをプロジェクトディレクトリに「Hello.cshtml」として保存してください。

C#でCSHTMLをPDFに変換する方法、図4: C#でのPDFファイル

C#でのPDFファイル

ステップ3: CSHTMLをPDFドキュメントに変換する

変換するにはCSHTML から PDF へファイルをPDFに変換するためには、C#でIronPDFライブラリを使用します。 以下は「Hello.cshtml」をPDFに変換するためのコードです:

using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace CSHTMLtoPDF.Controllers
{
    public class HomeController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        public HomeController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
        }

        public IActionResult Index()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };
            return View(items);
        }

        public IActionResult DownloadPDF()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };

            ChromePdfRenderer renderer = new ChromePdfRenderer();
            PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);

            var contentDisposition = new Syste.NET.Mime.ContentDisposition
            {
                FileName = "Items.pdf",
                Inline = false,
            };
            Response.Headers.Add("Content-Disposition", contentDisposition.ToString());

            return File(pdf.BinaryData, "application/pdf");
        }
    }
}
using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace CSHTMLtoPDF.Controllers
{
    public class HomeController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        public HomeController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
        }

        public IActionResult Index()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };
            return View(items);
        }

        public IActionResult DownloadPDF()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };

            ChromePdfRenderer renderer = new ChromePdfRenderer();
            PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);

            var contentDisposition = new Syste.NET.Mime.ContentDisposition
            {
                FileName = "Items.pdf",
                Inline = false,
            };
            Response.Headers.Add("Content-Disposition", contentDisposition.ToString());

            return File(pdf.BinaryData, "application/pdf");
        }
    }
}
Imports System.IO
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Namespace CSHTMLtoPDF.Controllers
	Public Class HomeController
		Inherits Controller

		Private ReadOnly _viewRenderService As IRazorViewRenderer
		Public Sub New(ByVal viewRenderService As IRazorViewRenderer)
			_viewRenderService = viewRenderService
		End Sub

		Public Function Index() As IActionResult
			Dim items = { "Item 1", "Item 2", "Item 3" }
			Return View(items)
		End Function

		Public Function DownloadPDF() As IActionResult
			Dim items = { "Item 1", "Item 2", "Item 3" }

			Dim renderer As New ChromePdfRenderer()
			Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items)

			Dim contentDisposition = New Syste.NET.Mime.ContentDisposition With {
				.FileName = "Items.pdf",
				.Inline = False
			}
			Response.Headers.Add("Content-Disposition", contentDisposition.ToString())

			Return File(pdf.BinaryData, "application/pdf")
		End Function
	End Class
End Namespace
VB   C#

このコードをステップバイステップで見ていきましょう:

  • 必要な名前空間を最初にインポートします。HTMLをPDFに変換する機能を含むIronPDF名前空間も含まれています。
  • 次に、Indexメソッドを定義します。このメソッドは、Razorビューにアイテムのリストを単純に返します。
  • DownloadPDFメソッドを定義しており、これはPDFドキュメントの生成を担当します。
  • まず、レンダラーを作成しますChromePdfRenderer.
  • 次に、データを含むRazorビューをPDFファイルに変換するためにRenderRazorViewToPdf拡張メソッドを使用します。
  • 次に、PDFがブラウザで表示されるのではなく、ダウンロードされるようにするために、Content-Dispositionヘッダーを設定します。
  • 最後に、Fileメソッドを使用してPDFドキュメントをファイルとして返します。

    これは、C#でIronPDFを使用してCSHTMLをPDFに変換するための基本的なコードです。 しかし、PDF出力をカスタマイズするための多くのオプションや設定があります。 いくつかのこれらのオプションを見てみましょう。

PDF出力リターンファイルのカスタマイズ

IronPDFは、PDFファイルの出力をカスタマイズするための多くのオプションを提供します。 次のようなオプションを設定できます: ページサイズ, 余白, オリエンテーション, ヘッダーとフッターなど。 PDF出力をカスタマイズする方法の例は次のとおりです:

using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string [] args)
        {
            var renderer = new ChromePdfRenderer();
            renderer.RenderingOptions.MarginTop = 10;
            renderer.RenderingOptions.MarginBottom = 10;
            renderer.RenderingOptions.MarginLeft = 20;
            renderer.RenderingOptions.MarginRight = 20;
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
            {
                MaxHeight = 20, //millimeters
                HtmlFragment = "<img src='logo.png'>",
                BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
            };
            renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
            {
                MaxHeight = 15, //millimeters
                HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
                DrawDividerLine = true
            };
            var pdf = renderer.RenderHtmlAsPdf("\r\n\r\n\r\n    \r\n    Hello\r\n\r\n\r\n    Hello, World!\r\n\r\n");
            pdf.SaveAs("Hello.PDF");
        }
    }
}
using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string [] args)
        {
            var renderer = new ChromePdfRenderer();
            renderer.RenderingOptions.MarginTop = 10;
            renderer.RenderingOptions.MarginBottom = 10;
            renderer.RenderingOptions.MarginLeft = 20;
            renderer.RenderingOptions.MarginRight = 20;
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
            {
                MaxHeight = 20, //millimeters
                HtmlFragment = "<img src='logo.png'>",
                BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
            };
            renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
            {
                MaxHeight = 15, //millimeters
                HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
                DrawDividerLine = true
            };
            var pdf = renderer.RenderHtmlAsPdf("\r\n\r\n\r\n    \r\n    Hello\r\n\r\n\r\n    Hello, World!\r\n\r\n");
            pdf.SaveAs("Hello.PDF");
        }
    }
}
Imports Microsoft.VisualBasic
Imports IronPdf

Namespace ConsoleApp
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim renderer = New ChromePdfRenderer()
			renderer.RenderingOptions.MarginTop = 10
			renderer.RenderingOptions.MarginBottom = 10
			renderer.RenderingOptions.MarginLeft = 20
			renderer.RenderingOptions.MarginRight = 20
			renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
				.MaxHeight = 20,
				.HtmlFragment = "<img src='logo.png'>",
				.BaseUrl = (New Uri("C:\assets\images\")).AbsoluteUri
			}
			renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
				.MaxHeight = 15,
				.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
				.DrawDividerLine = True
			}
			Dim pdf = renderer.RenderHtmlAsPdf(vbCrLf & vbCrLf & vbCrLf & "    " & vbCrLf & "    Hello" & vbCrLf & vbCrLf & vbCrLf & "    Hello, World!" & vbCrLf & vbCrLf)
			pdf.SaveAs("Hello.PDF")
		End Sub
	End Class
End Namespace
VB   C#

この例では、最初に ChromePdfRenderer クラスのインスタンスを作成します。 次に、ChromePdfRendererクラスのRenderingOptionsプロパティを使用して、さまざまなオプションを設定します。 以下は、設定したいくつかのオプションです:

  • PaperSize: PDFドキュメントの用紙サイズをA4に設定します。
  • MarginTop, MarginBottom, MarginLeft, MarginRight: PDFドキュメントの余白を上下10 mm、左右20 mmに設定します。
  • HtmlHeader: PDF ドキュメントのヘッダーを設定し、ドキュメントのタイトルと区切り線を表示します。
  • HtmlFooter: PDFドキュメントのフッターを設定して、ページ番号、総ページ数、現在の日付を表示します。

    オプションを設定した後、を呼び出しますRenderHtmlAsPdf以前と同じHTMLコンテンツを使用したメソッド。 最後に、PDFドキュメントを「Hello.PDF」という名前のファイルに保存します。

アプリケーションをテストする

すべての必要なコードが揃ったので、アプリケーションをテストすることができます。 以下の手順に従ってください:

  • Visual StudioでF5キーを押すか、緑色の「再生」ボタンをクリックしてアプリケーションを実行します。
  • ウェブブラウザーで、http://localhost:/Home/Indexに移動しますが、ポート番号はVisual Studioによって割り当てられたものです。
  • アイテム一覧が正しく表示されていることを確認してください。
  • 「PDFをダウンロード」リンクをクリックして、PDFドキュメントを生成およびダウンロードしてください。

    すべてが正しく機能している場合、先に定義した項目のリストが含まれるPDFドキュメントが表示されるはずです。

IronPDFを使用してPDFをCSHTMLファイルに変換

C#でCSHTMLをPDFに変換する方法, 図7: PDFからCSHTMLへ

PDFからCSHTMLへ

PDFをCSHTMLファイルに変換する方法を示すために、新しいコンソールアプリケーションをVisual Studioで作成し、IronPDFを使用してサンプルのPDFドキュメントをCSHTMLファイルに変換します。以下の手順に従ってください:

ステップ 1 新しいコンソール アプリケーションを作成する

Visual Studio を開き、メニューから「ファイル > 新規作成 > プロジェクト」を選択して、〔コンソール アプリ〕を選択し、新しいコンソール アプリケーションを作成します。(.NETフレームワーク)" または "コンソールアプリ(.NET Core(ドットネット コア))"プロジェクトテンプレートのリストから。

ステップ2 IronPDF NuGetパッケージをインストール

次にIronPDF NuGetパッケージコンソールアプリケーションで これを行うには、ソリューションエクスプローラーでプロジェクトを右クリックし、コンテキストメニューから「NuGet パッケージの管理」を選択します。

NuGet パッケージ マネージャーで「IronPDF」を検索し、検索結果から「IronPDF」パッケージを選択してください。 「インストール」ボタンをクリックして、パッケージとその依存関係をインストールしてください。

ステップ3 PDFファイルとCSHTMLファイルをプロジェクトに追加

この例では、変換したいサンプルPDFファイルを使用してCSHTMLファイルに変換します。この手順では、お好きなPDFファイルを使用できます。

プロジェクトにPDFファイルを追加するには、ソリューションエクスプローラーでプロジェクトを右クリックし、コンテキストメニューから「追加 > 既存の項目」を選択します。

変換されたHTML文字列を保存するために、空のCSHTMLファイルも作成する必要があります。 これを行うには、Solution Explorerでプロジェクトを右クリックし、コンテキストメニューから「追加 > 新しい項目」を選択します。 テンプレートのリストから「HTMLページ」を選択し、ファイルに名前を付けてください。(例えば「converted.cshtml」)そして「追加」をクリックします。

ステップ 4: PDFをCSHTMLファイルに変換する

必要なファイルが揃ったら、IronPDFを使用してPDFをCSHTMLファイルに変換するコードを書き始めることができます。 以下のコードをコンソールアプリケーションのMainメソッドに追加してください:

using IronPdf;

namespace PdfToHtml
{
    class Program
    {
        static void Main(string [] args)
        {
            // Load the PDF file
            PdfDocument pdf = PdfDocument.FromFile("sample.PDF");

            // Convert the PDF to an HTML string
            string html = pdf.ToHtml();

            // Save the HTML string to the CSHTML file
        }
    }
}
using IronPdf;

namespace PdfToHtml
{
    class Program
    {
        static void Main(string [] args)
        {
            // Load the PDF file
            PdfDocument pdf = PdfDocument.FromFile("sample.PDF");

            // Convert the PDF to an HTML string
            string html = pdf.ToHtml();

            // Save the HTML string to the CSHTML file
        }
    }
}
Imports IronPdf

Namespace PdfToHtml
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Load the PDF file
			Dim pdf As PdfDocument = PdfDocument.FromFile("sample.PDF")

			' Convert the PDF to an HTML string
			Dim html As String = pdf.ToHtml()

			' Save the HTML string to the CSHTML file
		End Sub
	End Class
End Namespace
VB   C#

IronPDFを使用する理由

IronPDFが.NET開発者の間で人気の理由はいくつかあります。

強力なPDF生成機能: IronPDFは、PDFドキュメントをプログラム上で作成および操作するための幅広い機能とオプションを提供します。PDFページにテキスト、画像、その他のコンテンツを追加する機能や、既存のPDFドキュメントを結合および分割する機能を含みます。

多用途のPDF変換機能: IronPDFは、開発者がPDFドキュメントを生成することを可能にするだけでなく、PDFをHTML文字列またはCSHTMLファイルに変換する機能も提供します。 これは、WebアプリケーションでPDFコンテンツを表示したり、PDFドキュメントからデータを抽出してウェブベースのワークフローで使用したりする必要がある場合に役立ちます。

使いやすい API: IronPDFのAPIは直感的で使いやすいように設計されており、幅広いヘルパーメソッドとプロパティを備えているため、開発者がプログラムでPDFドキュメントを生成および操作することが簡単です。

強力なコミュニティサポート:IronPDFには、多くのアクティブな.NET開発者コミュニティがあり、ライブラリの開発に貢献し、他の開発者にサポートを提供しています。

優れたドキュメント: IronPDFのドキュメントは充実しており、体系的に整理されています。詳細なAPIリファレンスドキュメント、チュートリアル、およびサンプルが含まれており、開発者がライブラリの使用を開始し、学習するのを容易にしています。

IronPDFの強力なPDF生成および変換機能、使いやすいAPI、強力なコミュニティサポート、優れたドキュメントが組み合わさることにより、PDFドキュメントをアプリケーション内で使用する必要がある.NET開発者の間で人気の選択肢となっています。

結論

CSHTMLをPDFに変換することは、多くのアプリケーションにおいて一般的な要件です。 IronPDFを使用すると、このタスクはC#で簡単に達成できます。 この記事では、IronPDFを使用してCSHTMLをPDFに変換する手順を、例と共に説明しました。

また、用紙サイズ、余白、ヘッダーとフッターなどの設定によりPDF出力をカスタマイズする方法も紹介しました。 IronPDFを使用すると、CSHTMLファイルから高品質のPDFドキュメントを迅速かつ簡単に作成できます。

PDFドキュメントをゼロから作成する必要がある場合、PDFをHTML文字列またはCSHTMLファイルに変換する場合、またはPDFドキュメントからデータを抽出する場合、IronPDFは柔軟で直感的なAPIを提供しており、作業を簡単に行うことができます。

強力なコミュニティサポートと豊富なドキュメンテーションを持つIronPDFは、アプリケーションでPDFを扱う必要がある.NET開発者の間で人気の選択肢です。 また、Iron Softwareパッケージを購入することで、開発者は、一般的なファイル形式で作業するための.NETライブラリの包括的なセットを割引価格で利用できるため、あらゆる.NET開発チームにとって非常にお得です。

.NET アプリケーションでPDF文書を操作する必要がある場合、IronPDFは検討する価値があります。 強力な機能、使いやすさ、そしてさまざまなライセンスオプションを備えており、迅速かつ効率的に作業を完了するための多用途で信頼性の高いツールです。

< 以前
VB.NETでPDFファイルを結合する方法
次へ >
C#でPDFファイルを保存する方法(初心者向けチュートリアル)