C#でHTMLをPDFに変換する
HTMLをPDFに変換する(C#、.NET)
C#と.NET Frameworkを使用して、HTML文書をPDFファイルに変換する方法について説明します。
必要なライブラリ
- iTextSharp
PDFの作成、編集、操作を行うためのオープンソースライブラリ。
手順
iTextSharpのインストール
HTML文書の読み込み
PDF文書の作成
HTML要素の解析とPDFへの追加
- HTML文書の要素を解析し、対応するPDF要素を作成して文書に追加します。
- 例えば、
<p>
タグはParagraph
クラスを使用して、<img>
タグはImage
クラスを使用して、それぞれに対応するPDF要素を作成します。
- PDF文書を指定したパスに保存します。
コード例
using iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using System.IO;
namespace HtmlToPdfConverter
{
class Program
{
static void Main(string[] args)
{
string htmlFilePath = "your_html_file.html";
string pdfFilePath = "output.pdf";
// HTML文書を読み込む
using (StringReader sr = new StringReader(File.ReadAllText(htmlFilePath)))
{
// PDF文書を作成する
using (Document document = new Document())
{
// PDFファイルを作成する
PdfWriter.GetInstance(document, new FileStream(pdfFilePath, FileMode.Create));
// HTML要素を解析してPDFに追加する
HTMLWorker htmlWorker = new HTMLWorker(document);
htmlWorker.Parse(sr);
// PDF文書を保存する
document.Open();
htmlWorker.Parse(sr);
document.Close();
}
}
}
}
}
注意
- 複雑なHTMLレイアウトやスタイルを忠実に再現するには、追加の処理が必要になる場合があります。
- HTML要素の対応するPDF要素の作成は、HTMLの構造やスタイルによって異なります。
- iTextSharpはライセンスに注意が必要です。商用利用の場合はライセンスを購入する必要があります。
C#でHTMLをPDFに変換するコード例解説
using iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using System.IO;
namespace HtmlToPdfConverter
{
class Program
{
static void Main(string[] args)
{
string htmlFilePath = "your_html_file.html";
string pdfFilePath = "output.pdf";
// HTML文書を読み込む
using (StringReader sr = new StringReader(File.ReadAllText(htmlFilePath)))
{
// PDF文書を作成する
using (Document document = new Document())
{
// PDFファイルを作成する
PdfWriter.GetInstance(document, new FileStream(pdfFilePath, FileMode.Create));
// HTML要素を解析してPDFに追加する
HTMLWorker htmlWorker = new HTMLWorker(document);
htmlWorker.Parse(sr);
// PDF文書を保存する
document.Open();
htmlWorker.Parse(sr);
document.Close();
}
}
}
}
}
解説
名前空間のインポート
PDFファイルの作成
HTMLWorker
クラスを使用して、HTML文書を解析し、PDF要素に変換します。htmlWorker.Parse(sr)
でHTML文書を解析し、PDF文書に追加します。
document.Open()
でPDF文書を開き、htmlWorker.Parse(sr)
で残りのHTML要素を解析して追加します。document.Close()
でPDF文書を保存します。
- このコード例は基本的なHTML文書をPDFに変換するものです。複雑なHTMLレイアウトやスタイルを忠実に再現するには、追加の処理が必要になる場合があります。
Spire.PDF
- 使用方法
- Spire.PDFライブラリをインストールします。
- HTML文書を読み込み、PDF文書を作成します。
- HTML要素を解析してPDF要素に変換し、PDF文書に追加します。
- PDF文書を保存します。
- 特徴
- 商用ライブラリで、豊富な機能とカスタマイズ性を提供します。
- HTMLレイアウトやスタイルを忠実に再現することができます。
Aspose.PDF
NReco.PdfGenerator
- 特徴
- オープンソースライブラリで、シンプルで使いやすいインターフェースを提供します。
- 基本的なHTMLレイアウトをPDFに変換することができます。
WebBrowserコントロール
- 使用方法
- WebBrowserコントロールをフォームに追加します。
- HTML文書のURLまたはHTMLコードを設定します。
- WebBrowserコントロールの印刷機能を使用してPDFファイルを作成します。
- 特徴
- .NET Frameworkの標準コントロールで、HTML文書を表示することができます。
- 印刷機能を使用してPDFファイルを作成することができます。
選択基準
- 使いやすさ
開発者のスキルや好みによって選択します。 - 性能
大量のHTML文書を処理する場合は性能を考慮します。 - ライセンス
商用利用の場合はライセンスに注意が必要です。 - 機能
必要とする機能やカスタマイズ性を考慮します。
c# html pdf