HTMLをPDFに変換することで、フォーマットの保存、信頼性の高い印刷、ドキュメントのアーカイブなど、様々な場面でニーズに合わせた利用が可能になります。
この記事では、サードパーティのライブラリSpire.PDF for .NETとQTプラグインを使用して、C#でHtmlウェブページ(URL)またはHTML文字列をPDFファイルに変換する方法を説明します。
HTMLからPDFへの変換に使用するツール :
-
Spire.PDF for .NET
まず、プロジェクトにSpire.PDF for .NETをインストールする必要があります。製品パッケージをダウンロードし、Dllを手動でプロジェクトに追加するか、Nuget経由で直接インストールすることができます。 -
Qt WebEngine
使用するQTプラグインはQt WebEngineです。以下は各OS用のパッケージで、クリックしてダウンロードし、指定のファイルパスに解凍します。
QTプラグインを使用してPDFにHTMLのWebページ(URL)を変換する
ステップ
- 変換するURLアドレス、生成されるファイルのパス、QTプラグインのパスを指定します;
- HtmlConverter.Convert(string url, string fileName, bool enableJavaScript, int timeout, SizeF pageSize, PdfMargins margins) メソッドを呼び出して、URLをPDFファイルに変換します。
C#コード:
using Spire.Pdf.Graphics;
using Spire.Additions.Qt;
using System.Drawing;
namespace ConvertUrlToPdf
{
class Program
{
static void Main(string[] args)
{
//ウェブページのURLを指定する
string url = " https://www.google.com/";
//出力ファイルのパスを指定する
string fileName = "UrltoPdf.pdf";
//プラグインのパスを指定する
string pluginPath = "F:\\plugins-windows-x64\\plugins";
//プラグインのパスを設定する
HtmlConverter.PluginPath = pluginPath;
// HTMLウェブページ(URL)をPDFに変換する
HtmlConverter.Convert(url, fileName, true, 100000, new Size(1080, 1000), new PdfMargins(0));
}
}
}
QTプラグインを使用してPDFにHTML文字列を変換する
ステップ
- File.ReadAllText() メソッドでhtmlファイルから文字列を読み込む;
- 生成されたファイルへのパスとQTプラグインを指定します;
- HtmlConverter.Convert(string htmlString, string fileName, bool enableJavaScript, int timeout, SizeF pageSize, PdfMargins margins, Spire.Pdf.HtmlConverter.LoadHtmlType htmlType) メソッドでHTML文字列をPDFファイルに変換します。
C#コード:
using System.IO;
using Spire.Additions.Qt;
using System.Drawing;
using Spire.Pdf.Graphics;
namespace ConvertHtmlStringToPdfWithPlugin
{
class Program
{
static void Main(string[] args)
{
//.htmlファイルからHTML文字列を読み込む
string htmlString = File.ReadAllText("Test.html");
//出力ファイルのパスを指定する
string fileName = "HtmltoPdf.pdf";
//プラグインのパスを指定する
string pluginPath = "F:\\plugins-windows-x64\\plugins";
//プラグインのパスを設定する
HtmlConverter.PluginPath = pluginPath;
//HTML文字列をPDFに変換
HtmlConverter.Convert(htmlString, fileName, true, 100000, new Size(1080, 1000), new PdfMargins(0), Spire.Pdf.HtmlConverter.LoadHtmlType.SourceCode);
}
}
}
注意:PDF上で正しく表示されるのは、インラインCSSスタイルと内部CSSスタイルだけです。外部CSSスタイルの場合は、最初にインラインCSSスタイルまたは内部CSSスタイルに変換する必要があります。
結論
上記の2つのC#サンプルコードを通して、URLをPDFに、またはHTML文字列をPDFに変換することができます。Spire.PDF for .NETライブラリは、プラグインなしでHTMLをPDFに変換することもサポートしています。しかし、QTプラグインの助けを借りて、我々はより良いレンダリング効果を達成することができます。
リファレンス
C#またはVB.NETでHTMLをPDFに変換する
Spire.PDF for .NET オンラインチュートリアル