C#でCSHTMLをPDFに変換する方法
CSHTML を PDF に変換することは、多くのアプリケーションで共通の要件です。 このタスクは、C# の IronPDF ライブラリを使用して簡単に実行できます。
IronPDF は、開発者がプログラムによって PDF ドキュメントを作成、読み取り、編集、変換できるようにする人気の .NET ライブラリです。 この記事では、IronPDFを使用してC#でCSHTMLをPDFに変換する手順を例を交えて紹介します。
始める前に、このチュートリアルに必要ないくつかの重要な概念について説明しましょう。
重要な概念
PDF Converter
PDF コンバーターは、印刷可能なドキュメントまたは Web ページを PDF ドキュメントに変換するツールです。 HTML、Word、Excel、またはその他の印刷可能なドキュメントから PDF ファイルを生成するために使用できます。 PDF コンバーターには、オンライン ツール、デスクトップ ソフトウェア、ライブラリなど、さまざまな形式があります。
Razor ビュー
Razor ビューは、ASP.NET Core で HTML ページを動的に生成するために使用されるビュー エンジンです。 これは、HTML マークアップと C# コードを組み合わせたマークアップ構文です。
! C#でCSHTMLをPDFに変換する方法、図1: Razorビュー レイザービュー
Razor ビューを使用すると、プレゼンテーション ロジックをビジネス ロジックから分離することで、開発者は動的な Web ページを簡単に作成できます。
コントローラークラス
コントローラー クラスは、ASP.NET Core アプリケーションで受信 HTTP 要求を処理する C# クラスです。 特定の HTTP 動詞 (GET、POST、PUT、DELETE など) に対応するメソッドが含まれており、HTTP 応答を返します。
NuGet パッケージ マネージャー
NuGet パッケージ マネージャーは、Visual Studio で .NET プロジェクト内のパッケージを管理するために使用されるツールです。 これにより、開発者はプロジェクト内のパッケージを簡単にインストール、更新、アンインストールできるようになります。 NuGet パッケージは、再利用可能なコードを含み、NuGet パッケージ マネージャーを介して配布されるライブラリです。
依存注入
依存性注入は、開発者がクラスに依存性を注入することでアプリケーション コンポーネントを分離できるようにする設計パターンです。 依存関係を減らし、コードをよりモジュール化することで、アプリケーションのテストと保守が容易になります。
重要な概念について説明したので、次は IronPDF を使用して CSHTML を PDF に変換するプロセスについて詳しく見ていきましょう。
CSHTML とは何ですか?
CSHTML は C# Razor 構文 HTML の略です。 これは、HTML マークアップと C# コードの両方を含むファイルの種類です。 これらのファイルは、ASP.NET Core MVC アプリケーションで Web ページのユーザー インターフェイスを定義するために使用されます。 Razor ビュー エンジンは、CSHTML ファイルを解釈し、Web ブラウザーでレンダリングできる HTML 出力を生成するために使用されます。
! C#でCSHTMLをPDFに変換する方法、図2: CSHTML5 CSHTML5
IronPDFとは何ですか?
IronPDF は、開発者が C# で PDF ドキュメントを作成、読み取り、編集、変換できるようにする強力な .NET ライブラリです。 これは、.NET アプリケーションでプログラムによって PDF ドキュメントを生成するための一般的なツールです。 IronPDF は、PDF 生成、PDF 操作、PDF 変換、PDF レンダリングなど、幅広い機能をサポートしています。
! C#でCSHTMLをPDFに変換する方法、図3:IronPDF for .NET .NET 用 IronPDF
IronPDFを使ってC#でCSHTML HTML文字列をPDFファイルに変換する方法
IronPDF を使用して CSHTML を PDF に変換するのは簡単なプロセスです。 このライブラリは、HTML ファイルを PDF ドキュメントに変換するための便利な API を提供します。 C# で IronPDF を使用して CSHTML を PDF に変換する手順は次のとおりです。
ステップ1 IronPDFをインストールする
最初のステップは、C# プロジェクトにNuGet パッケージ マネージャーから IronPDFをインストールすることです。 IronPDF.dll ファイルをダウンロードし、プロジェクト参照に追加することで、IronPDF をインストールできます。 NuGet パッケージ マネージャーを使用して IronPDF をインストールするには、パッケージ マネージャー コンソールを開き、次のコマンドを実行します。
ステップ2 CSHTMLファイルを作成する
次に、PDF に変換するコンテンツを含む CSHTML ファイルを作成します。 この例では、"Hello, World!"というテキストを表示する簡単なCSHTML チュートリアルファイルを作成します。
@{
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!このファイルをプロジェクト ディレクトリに"Hello.cshtml"として保存します。
! C#でCSHTMLをPDFに変換する方法、図4: C#のPDFファイル C# での PDF ファイル
ステップ3 CSHTMLをPDF文書に変換する
CSHTML ファイルを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" };
// Initialize a new instance of ChromePdfRenderer from IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified Razor view to a PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);
// Set the headers to force the browser to download the PDF
var contentDisposition = new System.Net.Mime.ContentDisposition
{
FileName = "Items.pdf",
Inline = false,
};
Response.Headers.Add("Content-Disposition", contentDisposition.ToString());
// Return the PDF document to the client
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" };
// Initialize a new instance of ChromePdfRenderer from IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified Razor view to a PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);
// Set the headers to force the browser to download the PDF
var contentDisposition = new System.Net.Mime.ContentDisposition
{
FileName = "Items.pdf",
Inline = false,
};
Response.Headers.Add("Content-Disposition", contentDisposition.ToString());
// Return the PDF document to the client
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" }
' Initialize a new instance of ChromePdfRenderer from IronPDF
Dim renderer As New ChromePdfRenderer()
' Render the specified Razor view to a PDF document
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items)
' Set the headers to force the browser to download the PDF
Dim contentDisposition = New System.Net.Mime.ContentDisposition With {
.FileName = "Items.pdf",
.Inline = False
}
Response.Headers.Add("Content-Disposition", contentDisposition.ToString())
' Return the PDF document to the client
Return File(pdf.BinaryData, "application/pdf")
End Function
End Class
End Namespaceこのコードをステップごとに見ていきましょう。
- まず、HTML から PDF への変換機能が含まれる IronPDF 名前空間を含む、必要な名前空間をインポートします。
- 次に、項目のリストを Razor ビューに返すだけの
Indexメソッドを定義します。 - PDF ドキュメントの生成を担当する
DownloadPDFメソッドを定義します。 - まず、レンダラー
ChromePdfRendererを作成します。 - 次に、
RenderRazorViewToPdf拡張メソッドを使用して、PDF ファイルにデータを含む Razor ビューを生成します。 - 次に、
Content-Dispositionヘッダーを設定して、PDF がブラウザーに表示されるのではなく、強制的にダウンロードされるようにします。 - 最後に、File メソッドを使用して PDF ドキュメントをファイルとして返します。
これは、C# で IronPDF を使用して CSHTML を PDF に変換する基本コードです。 ただし、PDF 出力をカスタマイズするために使用できるオプションと設定は多数あります。 これらのオプションのいくつかを見てみましょう。
PDF出力返却ファイルのカスタマイズ
IronPDF には、PDF ファイル出力をカスタマイズするための多くのオプションが用意されています。 ページ サイズ、余白、向き、ヘッダーとフッターなどのオプションを設定できます。 PDF 出力をカスタマイズする方法の例を次に示します。
using IronPdf;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
// Initialize a new instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Customize rendering options for the PDF
renderer.RenderingOptions.MarginTop = 10; // Set top margin in millimeters
renderer.RenderingOptions.MarginBottom = 10; // Set bottom margin in millimeters
renderer.RenderingOptions.MarginLeft = 20; // Set left margin in millimeters
renderer.RenderingOptions.MarginRight = 20; // Set right margin in millimeters
// Set HTML header for the PDF with a logo
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
MaxHeight = 20, // Height of header in millimeters
HtmlFragment = "<img src='logo.png'>",
BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
// Set HTML footer for the PDF with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
MaxHeight = 15, // Height of footer in millimeters
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
DrawDividerLine = true // Draw a line above the footer
};
// Convert HTML content to PDF
var pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>");
// Save the PDF to the file system
pdf.SaveAs("Hello.PDF");
}
}
}using IronPdf;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
// Initialize a new instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Customize rendering options for the PDF
renderer.RenderingOptions.MarginTop = 10; // Set top margin in millimeters
renderer.RenderingOptions.MarginBottom = 10; // Set bottom margin in millimeters
renderer.RenderingOptions.MarginLeft = 20; // Set left margin in millimeters
renderer.RenderingOptions.MarginRight = 20; // Set right margin in millimeters
// Set HTML header for the PDF with a logo
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
MaxHeight = 20, // Height of header in millimeters
HtmlFragment = "<img src='logo.png'>",
BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
// Set HTML footer for the PDF with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
MaxHeight = 15, // Height of footer in millimeters
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
DrawDividerLine = true // Draw a line above the footer
};
// Convert HTML content to PDF
var pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>");
// Save the PDF to the file system
pdf.SaveAs("Hello.PDF");
}
}
}Imports IronPdf
Namespace ConsoleApp
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Initialize a new instance of ChromePdfRenderer
Dim renderer = New ChromePdfRenderer()
' Customize rendering options for the PDF
renderer.RenderingOptions.MarginTop = 10 ' Set top margin in millimeters
renderer.RenderingOptions.MarginBottom = 10 ' Set bottom margin in millimeters
renderer.RenderingOptions.MarginLeft = 20 ' Set left margin in millimeters
renderer.RenderingOptions.MarginRight = 20 ' Set right margin in millimeters
' Set HTML header for the PDF with a logo
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.MaxHeight = 20,
.HtmlFragment = "<img src='logo.png'>",
.BaseUrl = (New Uri("C:\assets\images\")).AbsoluteUri
}
' Set HTML footer for the PDF with page numbers
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.MaxHeight = 15,
.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
.DrawDividerLine = True
}
' Convert HTML content to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>")
' Save the PDF to the file system
pdf.SaveAs("Hello.PDF")
End Sub
End Class
End Namespaceこの例では、まずChromePdfRendererクラスのインスタンスを作成します。 次に、 ChromePdfRendererクラスのRenderingOptionsプロパティを使用してさまざまなオプションを設定します。 設定したオプションの一部を次に示します。
MarginTop、MarginBottom、MarginLeft、MarginRight: PDF ドキュメントの余白を設定します。HtmlHeader: PDF ドキュメントのヘッダーにロゴを表示するように設定します。HtmlFooter: PDF ドキュメントのフッターを設定して、ページ番号と合計ページ数を表示します。
オプションを設定した後、HTML コンテンツを使用してRenderHtmlAsPdfメソッドを呼び出します。 最後に、PDF ドキュメントを"Hello.PDF"という名前のファイルに保存します。
アプリケーションをテストする
必要なコードがすべて揃ったら、アプリケーションをテストできます。 次の手順に従います。
- F5 キーを押すか、Visual Studio の緑色の"再生"ボタンをクリックして、アプリケーションを実行します。
- Web ブラウザーで
http://localhost:/Home/Indexに移動します。ここで、 は Visual Studio によって割り当てられたポート番号です。 - アイテムのリストが正しく表示されていることを確認します。
- "PDF をダウンロード"リンクをクリックして、PDF ドキュメントを生成してダウンロードします。
すべてが正しく動作している場合は、以前に定義した項目のリストを含む PDF ドキュメントが表示されます。
IronPDF で PDF を CSHTML ファイルに変換する
! C#でCSHTMLをPDFに変換する方法、図7: PDFからCSHTMLへ PDFからCSHTMLへ
IronPDFを使ってPDFをCSHTMLファイルに変換する方法を説明するために、Visual Studioで新しいコンソールアプリケーションを作成し、IronPDFを使ってサンプルPDFドキュメントをCSHTMLファイルに変換します。以下の手順に従ってください。
ステップ1 新しいコンソールアプリケーションを作成する
Visual Studio を開き、メニューから"ファイル > 新規 > プロジェクト"を選択し、プロジェクト テンプレートのリストから"コンソール アプリ (.NET Framework)"または"コンソール アプリ (.NET Core)"を選択して、新しいコンソール アプリケーションを作成します。
ステップ2 IronPDF NuGetパッケージをインストールする
次に、コンソール アプリケーションにIronPDF NuGet パッケージをインストールする必要があります。 これを行うには、ソリューション エクスプローラーでプロジェクトを右クリックし、コンテキスト メニューから [NuGet パッケージの管理] を選択します。
NuGet パッケージ マネージャーで、"IronPDF"を検索し、検索結果から"IronPDF"パッケージを選択します。 "インストール"ボタンをクリックして、パッケージとその依存関係をインストールします。
ステップ3 プロジェクトにPDFファイルとCSHTMLファイルを追加する
この例では、CSHTMLファイルに変換するサンプルPDFファイルを使用します。この手順では、お好きなPDFファイルを使用できます。
ソリューション エクスプローラーでプロジェクトを右クリックし、コンテキスト メニューから [追加 > 既存の項目] を選択して、PDF ファイルをプロジェクトに追加します。
また、変換された HTML 文字列を保存するために使用する空の CSHTML ファイルを作成する必要があります。 これを行うには、ソリューション エクスプローラーでプロジェクトを右クリックし、コンテキスト メニューから [追加 > 新しい項目] を選択します。 テンプレートのリストから"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
System.IO.File.WriteAllText("converted.cshtml", html);
}
}
}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
System.IO.File.WriteAllText("converted.cshtml", html);
}
}
}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
System.IO.File.WriteAllText("converted.cshtml", html)
End Sub
End Class
End NamespaceIronPDF を使用する理由は何ですか?
IronPDF は、いくつかの重要な理由により、.NET 開発者の間で人気があります。
強力な PDF 生成機能: IronPDF は、PDF ページにテキスト、画像、その他のコンテンツを追加する機能や、既存の PDF ドキュメントを結合および分割する機能など、プログラムによって PDF ドキュメントを作成および操作するための幅広い機能とオプションを提供します。
多彩な PDF 変換機能: IronPDF では、開発者が PDF ドキュメントを生成できるだけでなく、PDF を HTML 文字列または CSHTML ファイルに変換する機能も提供されます。 これは、Web アプリケーションで PDF コンテンツを表示したり、PDF ドキュメントからデータを抽出して Web ベースのワークフローで使用したりする必要がある場合に役立ちます。
使いやすい 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 を検討する価値があります。 強力な機能、使いやすさ、幅広いライセンス オプションを備えたこのツールは、作業を迅速かつ効率的に完了するのに役立つ多用途で信頼性の高いツールです。