C#で.NET開発者向けのHTMLをPDFに変換する(究極のガイド)
はじめに
今日の Web 主導の世界では、HTML コンテンツを PDF ドキュメント (Portable Document Format) に変換する機能は、多くのアプリケーションにとって重要な機能です。 レポートや請求書から PDF ファイルを生成する場合でも、Web コンテンツをアーカイブする場合でも、HTML から PDF への変換によりワークフローが合理化され、高品質の PDF の一貫したフォーマットが保証されます。 IronPDFのようなライブラリは、動的なコンテンツ、 HTML フォーム、 CSSとJavaScriptの正確なレンダリングをサポートし、開発者にとって使いやすい方法でこの変換を処理します。
.NET 開発者にとって、適切なHTML から PDF へのコンバーターの使用は、効率、コードの簡潔性、PDF 生成の品質に影響を与えます。 最新のライブラリを使用すると、開発者はわずか数行のコードで HTML 文字列、Web ページ全体、または HTML ファイルをレンダリングされた PDF ドキュメントに直接変換できるため、動的なドキュメント、カスタム ヘッダー、印刷可能なバージョンの Web コンテンツが可能になります。
学ぶ内容
このガイドでは、複数のライブラリにわたって C# で HTML を PDF に変換する方法と、PDF ドキュメント、HTML フォーム、カスタム マージン、セキュリティ保護された PDF の操作を含む PDF 変換機能について説明します。 この記事で取り上げるトピックは次のとおりです。
- HTML ツールと PDF ツールを比較する理由
- IronPDF: HTMLからPDFへの変換
- Aspose: HTMLからPDFへの変換
- iText 9: HTMLからPDFへの変換
- wkhtmltopdf: HTMLからPDFへの変換
- PuppeteerSharp: HTMLからPDFへの変換 7.結論 IronPDF を選ぶ理由
最後に、 IronPDF が開発者に優しく効率的な HTML から PDF へのコンバーターとして際立っている理由がわかるでしょう。 弊社の他の比較ガイドもぜひご覧ください。IronPDF とAspose.PDF 、 iText 9 、 wkhtmltopdf 、 PuppeteerSharpを詳しく比較し、どれがプロジェクトに最適か、なぜ IronPDF が優れているかを確認します。
HTML ツールと PDF ツールを比較する理由
アプリケーションがパフォーマンス、品質、コストの要件を満たすためには、適切なHTML から PDF への変換ツールを選択することが不可欠です。 多数のオプションが用意されており、それぞれが異なる PDF 変換機能を提供しているため、徹底的に比較することで、情報に基づいた決定を下すことができます。 考慮すべき主な評価基準は次のとおりです。
*統合の複雑さ:* NuGet パッケージ マネージャーを使用した簡単なインストールや API 統合タブのセットアップなど、ライブラリが既存の .NET プロジェクトとどれだけ簡単に統合できるか。 コードのシンプルさ: HTML 文字列または Web ページ全体を生成された PDF ドキュメントに変換するための数行などの最小限のコード例を含む、ソース コードの記述と保守の容易さ。 レンダリング精度:レンダリング エンジンが HTML コード、JavaScript 実行、印刷 CSS、HTML フォーム、その他の動的コンテンツを正確に処理し、高品質の PDF を生成する能力。 大規模なパフォーマンス:**複数の HTML ページまたは動的コンテンツから PDF ファイルを生成するときに、高負荷状態で PDF コンバーターがどれだけうまく機能するか。 *ライセンスと費用対効果:商用ライセンスなどの価格モデルと、プロジェクトの予算への適合性。
これらの要素を評価することで、開発者は Visual Studio で .NET Core プロジェクトと .NET Framework プロジェクトのどちらを扱う場合でも、技術要件と財務上の制約の両方に適合するツールを選択できます。
IronPDF: HTMLからPDFへの変換
! .NET 開発者のための C# による HTML から PDF への変換 (究極ガイド): 図 1
IronPDFは、開発者向けに特別に設計されたフル機能の .NET ライブラリです。 最小限の設定で、 HTML文字列、ローカルファイル、ライブURLをPDFに変換するためのすぐに使えるメソッドを提供します。Chromeベースのレンダリングエンジンは、CSSとJavaScriptのサポートを含め、高い精度を保証します。 IronPDF は商用ですが、強力なサポートとわかりやすい API を提供します。
HTML文字列をPDFに変換
IronPDF を使用すると、HTML を文字列から PDF に簡単に変換できます。 このアプローチは、動的なコンテンツの生成や小さな HTML スニペットに最適です。
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com生成されたPDFドキュメント
! .NET 開発者のための C# による HTML から PDF への変換 (究極ガイド): 図 2
説明:
ChromePdfRenderer:ChromePdfRendererクラスは、IronPDF で HTML を PDF に変換するための主要なツールです。 最小限のセットアップでほとんどのユースケースに対応できるように事前構成されています。RenderHtmlAsPdf:このメソッドは、HTML 文字列を入力として受け取り、PDF ドキュメントを生成します。SaveAs:生成された PDF は指定されたパス (output.pdf) に保存されます。
ローカル HTML ファイルを PDF に変換
ローカル HTML ファイル(CSS や JavaScript などの外部リソースを含む) を変換する必要があるアプリケーションの場合、IronPDF を使用すると簡単に変換できます。
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("template.html")
pdf.SaveAs("report.pdf")
End Sub
End Class入力HTMLファイル
! .NET 開発者のための C# による HTML から PDF への変換 (究極ガイド): 図 3
Output
! .NET 開発者のための C# による HTML から PDF への変換 (究極ガイド): 図 4
説明:
- RenderHtmlFileAsPdf:ローカル HTML ファイルを取得して PDF に変換します。
- 外部 CSS や JavaScript ファイルなどのリンクされたリソースを自動的に処理します。
URLをPDFに
IronPDF は、JavaScript を使用するページを含むURLからの動的な Web コンテンツを変換するときに特に強力です。
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
! .NET 開発者のための C# による HTML から PDF への変換 (究極ガイド): 図 5
説明:
- RenderUrlAsPdf: JavaScript でレンダリングされた要素を含む URL コンテンツを取得し、PDF に変換します。
評決 / いつ使うべきか
IronPDF は、簡単な API 統合、最小限のコード、PDF ドキュメントの操作、動的ドキュメント、HTML フォーム、カスタム ヘッダー、印刷可能なバージョンの Web コンテンツの作成のサポートを必要とする開発者に最適です。 Visual Studio の .NET Core または .NET Framework プロジェクトに最適です。
Aspose: HTML から PDF への変換
! .NET 開発者のための C# による HTML から PDF への変換 (究極ガイド): 図 6
Aspose.PDF は、HTML から PDF への変換をサポートする、PDF 操作用のもう 1 つの強力なライブラリです。 Aspose が各変換シナリオをどのように処理するかを見てみましょう。
HTML文字列をPDFに変換
Aspose では、IronPDF と比較して、HTML 文字列を変換するときに少し多くの設定が必要です。
Example:
using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");Imports Aspose.Html
Imports Aspose.Html.Saving
Private doc As New Document()
Private page As Page = doc.getPages().Add()
Private htmlFragment As New HtmlFragment("<h1>HTML String</h1>")
page.getParagraphs().Add(htmlFragment)
doc.Save("HTMLStringUsingDOM.pdf")Output
! .NET 開発者のための C# による HTML から PDF への変換 (究極ガイド): 図 7
説明:
*ドキュメント doc:*変換された HTML 文字列を保存するための新しいドキュメントを作成します。 ページ ページ:**この行は、作成した空のドキュメントに新しいページを追加します。
- HtmlFragment htmlFragment:これは変換する HTML 文字列です。
- page.getParagraphs().Add(htmlFragment):ドキュメントに HTML を追加します。
- doc.Save: HTML コンテンツを含むドキュメントを PDF ドキュメントとして保存します。
ローカル HTML ファイルを PDF に変換
Aspose はローカル HTML ファイルを PDF に変換する処理も行いますが、IronPDF よりも多くの構成が必要です。
Example:
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");Imports Aspose.Html
Imports Aspose.Html.Converters
Imports Aspose.Html.Saving
Private document = New HTMLDocument("document.html")
Private options = New PdfSaveOptions()
Converter.ConvertHTML(document, options, "output.pdf")入力HTML:
! .NET 開発者のための C# による HTML から PDF への変換 (究極ガイド): 図 8
Output:
! .NET 開発者のための C# による HTML から PDF への変換 (究極ガイド): 図 9
説明:
- var document = new HTMLDocument("document.html"): HTML ファイルを読み込みます。
- var options:新しい PdfSaveOptions オブジェクトを作成します。
- Converter.ConvertHTML(): HTML を PDF に変換します。
URLをPDFに
Aspose は URL に対して同様の機能を提供しますが、追加の設定が必要です。
Example:
using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図10
説明:
dataDir変数には、生成された PDF が保存されるディレクトリが保持されます。- Wikipedia のメイン ページ URL にアクセスするための
WebRequestが作成され、リクエストにはデフォルトの資格情報が使用されます。 GetResponse()メソッドは要求を送信し、応答を HttpWebResponse として取得します。- 応答からストリームが取得され、StreamReader がページの HTML コンテンツ全体を
responseFromServer文字列に読み取ります。 responseFromServerからの HTML コンテンツはバイト配列に変換され、MemoryStreamにロードされます。HtmlLoadOptionsは、相対リンクやその他の設定のベース URL を指定するために使用されます。- HTML を含むメモリ ストリームから
Aspose.Pdf.Documentが作成され、ドキュメントは指定されたディレクトリに PDF として保存されます。
評決 / いつ使うべきか
Aspose.PDF は、高度な PDF 操作と変換を必要とするエンタープライズ プロジェクトに最適です。 強力ですが、HTML から PDF への簡単なタスクには適していません。
iText 9: HTMLからPDFへの変換
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図11
iText 9 は、iText PDF ライブラリの最新バージョンであり、.NET アプリケーションで PDF ドキュメントを生成および操作するための機能が強化されています。 より合理化され拡張可能な API が導入され、パフォーマンスが向上し、最新の PDF 標準に対するサポートが向上します。
HTML文字列をPDFに変換
iText 9 を使用して HTML 文字列を PDF ドキュメントに変換する基本的な例を示します。
Example:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
ローカル HTML ファイルを PDF に変換
iText 9 は、HtmlConverter.ConvertToPdf クラスを使用して HTML ファイル タイプを PDF に変換できます。
Example:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図13
説明:
- HtmlConverter: HTML ファイルを直接 PDF に変換します。
URLをPDFに
iText7 は URL からのコンテンツの変換もサポートしています。
Example:
using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図14
説明:
- HttpClient.GetStringAsync(url): URL から実際の HTML コンテンツをダウンロードします。
- HtmlConverter.ConvertToPdf(htmlContent, …):取得した HTML 文字列をレンダリングされた PDF に変換します。
評決 / いつ使うべきか
iText 9 は、PDF の作成、操作、HTML から PDF への変換のための堅牢なエンタープライズ グレードのソリューションを必要とする開発者に適しています。 生成された PDF を正確に制御したり、既存の iText ワークフローと統合したり、デジタル署名やフォームなどの高度な PDF 機能が必要な場合に適しています。 ただし、単純な HTML から PDF へのタスクの場合、iText 9 は IronPDF などの合理化されたライブラリよりも重く、複雑です。
wkhtmltopdf: HTMLからPDFへの変換
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図15
アーカイブとメンテナンスのステータス
wkhtmltopdf はアクティブにメンテナンスされなくなったことに注意することが重要です。 同社の GitHub リポジトリは 2023 年 1 月に正式にアーカイブされ、読み取り専用としてマークされました。これは、今後のアップデート、バグ修正、セキュリティ パッチは適用されないことを意味します。
開発者への影響: wkhtmltopdf は、非常に基本的な使用ケースでは依然として効果的ですが、メンテナンスされていない状態と古いレンダリング エンジンにより、特に実稼働環境や動的または外部の HTML コンテンツを処理するアプリケーションでは、リスクのある選択となります。
wkhtmltopdf は、Webkit レンダリングを使用して HTML ファイルを PDF に変換するコマンドライン ツールです。 さまざまなシナリオでの動作は次のとおりです。
HTML文字列をPDFに変換
wkhtmltopdf では、まず HTML 文字列をファイルに書き込んで変換する必要があります。
Example:
using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}Imports System
Imports System.IO
Imports System.Diagnostics
Friend Class Program
Shared Sub Main(ByVal args() As String)
' HTML string to be converted to PDF
Dim html As String = "<html><body><h1>Hello, World!</h1></body></html>"
' Write HTML string to temporary file
Dim tempHtmlFile As String = Path.Combine(Path.GetTempPath(), "temp.html")
File.WriteAllText(tempHtmlFile, html)
' Set output PDF path
Dim outputPdfFile As String = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf")
' Execute wkhtmltopdf command
Dim process As New Process()
process.StartInfo.FileName = "wkhtmltopdf"
process.StartInfo.Arguments = $"""{tempHtmlFile}"" ""{outputPdfFile}"""
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
process.Start()
process.WaitForExit()
' Clean up the temporary HTML file
File.Delete(tempHtmlFile)
Console.WriteLine($"PDF saved to: {outputPdfFile}")
End Sub
End ClassOutput
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図16
説明:
- wkhtmltopdf には入力ファイルが必要なので、最初に HTML 文字列を一時ファイル (temp.html) に書き込みます。
- 次に、Process クラスを使用してwkhtmltopdfコマンドを実行し、一時 HTML ファイルのファイル パスと目的の出力 PDF パスを引数として渡します。 ※変換後、クリーンアップのため一時HTMLファイルを削除します。
ローカル HTML ファイルを PDF に変換
wkhtmltopdfを使用してローカル HTML ファイルを PDF に変換するには、HTML ファイルのファイル パスを直接指定できます。
Example:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図17
説明:
- この例では、ローカル HTML ファイル (template.html) へのパスと PDF の出力パスが単純に提供されます。
- wkhtmltopdf はローカルファイルを直接処理するため、コマンドが簡単になります。
URLをPDFに
wkhtmltopdfを使用すると、URL を PDF に変換するのは簡単です。 URL をコマンドに直接渡すだけです。
Example:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図18
説明:
- この例では、
wkhtmltopdfURL を入力として直接受け入れます。 - URL は
wkhtmltopdfに引数として渡され、出力は指定されたパスに PDF として保存されます。
PuppeteerSharp: HTMLからPDFへの変換
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図19
PuppeteerSharp は、Google の Puppeteer の .NET ラッパーであり、ヘッドレス Chrome/Chromium の制御を提供します。 JavaScript を多用した動的なページのレンダリングには優れていますが、Chromium インスタンスのダウンロードと管理が必要なため、オーバーヘッドが増加します。 Apache 2.0 に基づくオープンソースです。
HTML文字列をPDFに変換
Puppeteer はページ全体をレンダリングするように設計されているため、HTML 文字列を変換するには、ファイルに書き込むか、ブラウザで直接レンダリングする必要があります。
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comOutput
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図20
説明:
- Puppeteer.LaunchAsync:ヘッドレス モードで Chromium の新しいインスタンスを起動します。
- page.SetContentAsync: HTML 文字列をブラウザー ページに読み込みます。
- page.PdfAsync:読み込まれた HTML を PDF に変換し、ファイルに保存します。
ローカル HTML ファイルを PDF に変換
PuppeteerSharp を使用してローカル HTML ファイルを PDF に変換するには、ファイルをヘッドレス ブラウザーに読み込んで PDF を生成します。
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Download the browser if necessary
Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
' Load the local HTML file
Await page.GoToAsync("file:///path/to/your/template.html")
' Save the page as a PDF
Await page.PdfAsync("html-file-to-pdf.pdf")
Await browser.CloseAsync()
End Function
End ClassOutput
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図21
説明:
- page.GoToAsync:ローカル HTML ファイルを読み込みます (正しい
[file://]()パスを使用していることを確認してください)。 - page.PdfAsync:ローカル HTML ファイルの内容を PDF に変換します。
URLをPDFに
URL を PDF に変換することは、JavaScript を使用して複雑なページを処理できるため、PuppeteerSharp のコア機能の 1 つです。
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Download the browser if necessary
Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
' Navigate to the URL
Await page.GoToAsync("https://example.com")
' Save the page as a PDF
Await page.PdfAsync("url-to-pdf.pdf")
Await browser.CloseAsync()
End Function
End ClassOutput
! .NET開発者のためのC#によるHTMLからPDFへの変換(究極ガイド): 図22
説明:
- page.GoToAsync:指定された URL に移動します。
- page.PdfAsync: URL の Web ページを PDF に変換して保存します。
評決 / いつ使うべきか
PuppeteerSharp は、JavaScript を多用した最新の Web アプリケーションをピクセル単位で完璧にレンダリングする必要がある場合に最適です。 IronPDF よりも複雑ですが、動的な Web コンテンツの処理に優れています。
なぜIronPDFを選ぶのか?
IronPDF は、使いやすさ、柔軟性、.NET アプリケーションとのシームレスな統合が特長です。 実装が簡単で、HTML、CSS、JavaScript レンダリングをサポートし、追加のセットアップや外部依存関係は必要ありません。 HTML から PDF への変換以外にも、IronPDF は、さまざまなファイル タイプからPDF ドキュメントを作成したり、既存の PDF ドキュメントを編集および追加したり、透かしを追加したり、 PDF ファイルのセキュリティを確保したりするための幅広い機能を提供します。 このライブラリの実際の動作を詳しく確認するには、各機能の使い方を示すハウツー ガイドを必ず確認してください。
結論
C# で HTML を PDF ファイルに変換する場合、それぞれ独自の機能と機能を備えた強力なツールがいくつか用意されています。 IronPDF 、 Aspose 、 iText 9 、 wkhtmltopdf 、 PuppeteerSharp はすべて、HTML コンテンツをプロフェッショナル グレードの PDF ドキュメントに変換するための強力なソリューションを提供します。 ただし、プロジェクトに適したツールの選択は、統合の容易さ、動的コンテンツのサポート、パフォーマンス、柔軟性などの要素によって異なります。
| 道具 | HTML文字列をPDFに | HTMLファイルをPDFに | URLからPDFへ | 注意事項 |
|---|---|---|---|---|
IronPDF | HTML文字列用のRenderHtmlAsPdfでシンプルに。使いやすく、.NETアプリケーションにシームレスに統合できます。 | RenderHtmlFileAsPdfを使用し、リンクされたリソース (CSS、JS) を自動的に処理します。 | RenderUrlAsPdfを使用し、JavaScript を多用するページと動的コンテンツをサポートします。 | .NETに完全に統合されているため、.NET開発者に最適です。HTML文字列、ファイル、URLをサポートします。 |
![]() Aspose | さらに設定が必要です。Document Document内のHtmlFragmentを使用して HTML 文字列を変換します。 | ローカルHTMLファイル変換にはHtmlDocumentとPdfSaveOptionsが必要です。IronPDFよりも多くの設定が必要です。 | HtmlLoadOptionsで変換する前に、 WebRequestを使用してコンテンツを取得する追加のセットアップが必要です。 | 様々なドキュメント操作に対応していますが、セットアップが複雑になる場合があります。より複雑なPDFのニーズに適しています。 |
![]() iText7 | HtmlConverter.ConvertToPdfを使用して HTML 文字列を PDF に変換します。 | HtmlConverter.ConvertToPdfを使用して、ローカル HTML ファイルを PDF に変換します。 | ローカル ファイル処理と同様に、 HtmlConverter.ConvertToPdfを使用します。 | HTML から PDF への変換を超えて PDF 操作をより細かく制御する必要がある開発者に最適です。 |
![]() wkhtmlからpdfへ | HTML文字列をまずファイルに書き込んで変換します。コマンドラインツールを使用してPDFを生成します。 | ファイル パスを指定して、ローカル HTML ファイルを PDF に直接変換します。 | URL をコマンドライン ツールに渡すことで、URL を PDF に直接変換します。 | 主にコマンドラインツールですが、.NET への統合には追加の手順が必要になる場合があります。単純な変換に最適です。 |
![]() パペッティアシャープ | page.SetContentAsyncを使用して HTML 文字列を読み込み、次にpage.PdfAsyncを使用して PDF を生成します。 | page.GoToAsyncを介してローカル HTML ファイルを読み込み、それを PDF に変換します。 | URL を読み込み、 page.GoToAsyncとpage.PdfAsyncを使用して PDF に変換します。 | 動的なページ、特にJavaScriptを多用するコンテンツに最適です。Chromiumをダウンロードして起動する必要があります。 |
IronPDF は、そのシンプルさ、.NET との直接統合、JavaScript でレンダリングされたページを含む複雑な HTMLを処理できる機能で際立っています。 最小限のセットアップで使いやすいソリューションを探している開発者に最適です。
Aspose は広範な PDF 操作機能を提供しますが、HTML から PDF への変換機能には、特にローカル ファイルや外部リソースの処理に関して、より多くの構成が必要です。
iText 9 はPDF ドキュメントを作成しようとしている人にとって強固な基盤を提供しますが、特に動的コンテンツの場合、HTML を PDF に変換するために追加のコーディングが必要になることがあります。 カスタム PDF 操作が必要なプロジェクトに最適です。
wkhtmltopdf は、コマンドライン インターフェイスを使用した基本的な HTML から PDF への変換に最適ですが、完全な .NET ライブラリのような統合性と柔軟性が欠けています。
- ヘッドレス Chrome を活用したPuppeteerSharp は、特に JavaScript を多用するコンテンツを扱う場合に、複雑で動的な Web ページをレンダリングして PDF に変換するためのツールです。
オールインワンの簡単なソリューションを探しているほとんどの .NET 開発者にとって、 IronPDF は、その強力な機能を実際に体験してみる価値のあるツールです。 新しい PDF ドキュメントの生成から既存の PDF の編集まで、IronPDF のあらゆる機能を実際にお試しください。 IronPDF をインストールし、無料トライアルで実際にお試しください。 今すぐ PDF ワークフローをどう向上できるかご覧ください。
最終的に、適切なツールは特定の要件によって異なりますが、ここで説明したオプションを使用すると、プロジェクトに最適なソリューションを見つけることができます。
注意: Aspose、iText、wkhtmltopdf、および PuppeteerSharp は、それぞれの所有者の登録商標です。 このサイトは、Aspose、iText、wkhtmltopdf、またはPuppeteerとは関連がありません,承認されていません,後援されていません。 すべての製品名、ロゴ、およびブランドは各所有者の財産です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報に基づいています。



