C#でURLまたはHTML文字列をPDFに変換する

HTMLをPDFに変換することで、フォーマットの保存、信頼性の高い印刷、ドキュメントのアーカイブなど、様々な場面でニーズに合わせた利用が可能になります。
この記事では、サードパーティのライブラリ[Spire.PDF for .NET](https://www.e-iceblue.com/Introduce/pdf-for-net-introduce.html)とQTプラグインを使用して、C#でHtmlウェブページ（URL）またはHTML文字列をPDFファイルに変換する方法を説明します。

## HTMLからPDFへの変換に使用するツール ：
1. [**Spire.PDF for .NET**](https://www.e-iceblue.com/Introduce/pdf-for-net-introduce.html)
まず、プロジェクトにSpire.PDF for .NETをインストールする必要があります。製品パッケージを[ダウンロード](https://www.e-iceblue.com/Download/download-pdf-for-net-now.html)し、Dllを手動でプロジェクトに追加するか、[Nuget](http://www.nuget.org/packages/Spire.PDF/)経由で直接インストールすることができます。


2. **Qt WebEngine**
使用するQTプラグインはQt WebEngineです。以下は各OS用のパッケージで、クリックしてダウンロードし、指定のファイルパスに解凍します。

 * [Windows x86](https://www.e-iceblue.com/downloads/plugins/plugins-windows-x86.zip) 
 * [Windows x64](https://www.e-iceblue.com/downloads/plugins/plugins-windows-x64.zip)
 * [Linux x64](https://www.e-iceblue.com/downloads/plugins/net/plugins-linux-x64.tar.gz)
 * [Mac x64](https://www.e-iceblue.com/downloads/plugins/net/plugins-macosx-x64.zip)


## QTプラグインを使用してPDFにHTMLのWebページ（URL）を変換する

**ステップ**
1. 変換するURLアドレス、生成されるファイルのパス、QTプラグインのパスを指定します；
2. **HtmlConverter.Convert(string url, string fileName, bool enableJavaScript, int timeout, SizeF pageSize, PdfMargins margins)** メソッドを呼び出して、URLをPDFファイルに変換します。

**C#コード：**
```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文字列を変換する

**ステップ**
1. **File.ReadAllText()** メソッドでhtmlファイルから文字列を読み込む；
2. 生成されたファイルへのパスとQTプラグインを指定します；
3. **HtmlConverter.Convert(string htmlString, string fileName, bool enableJavaScript, int timeout, SizeF pageSize, PdfMargins margins, Spire.Pdf.HtmlConverter.LoadHtmlType htmlType)** メソッドでHTML文字列をPDFファイルに変換します。

**C#コード：**
```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);
        }
    }
}
```
:::note warn
注意：PDF上で正しく表示されるのは、インラインCSSスタイルと内部CSSスタイルだけです。外部CSSスタイルの場合は、最初にインラインCSSスタイルまたは内部CSSスタイルに変換する必要があります。
:::


## 結論
上記の2つのC#サンプルコードを通して、URLをPDFに、またはHTML文字列をPDFに変換することができます。Spire.PDF for .NETライブラリは、プラグインなしでHTMLをPDFに変換することもサポートしています。しかし、QTプラグインの助けを借りて、我々はより良いレンダリング効果を達成することができます。


**リファレンス**
[C#またはVB.NETでHTMLをPDFに変換する](https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Convert-HTML-to-PDF-Customize-HTML-to-PDF-Conversion-by-Yourself.html) 
[Spire.PDF for .NET オンラインチュートリアル](https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Spire.PDF-Program-Guide-Content.html)