LoginSignup
1
0

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

Posted at

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

HTMLからPDFへの変換に使用するツール :

  1. Spire.PDF for .NET
    まず、プロジェクトにSpire.PDF for .NETをインストールする必要があります。製品パッケージをダウンロードし、Dllを手動でプロジェクトに追加するか、Nuget経由で直接インストールすることができます。

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

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#コード:

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#コード:

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 オンラインチュートリアル

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0