チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル».NET»Spire.PDF for .NET»変換»C#/VB.NET:HTML を PDF に変換する方法
2022-05-18

C#/VB.NET:HTML を PDF に変換する方法

HTML ファイルを PDF に変換すると、オフラインで読み取ることができるほか、そのコンテンツを保存して忠実にフォーマットできるなど、多くの利点があります。Spire.PDF は、HTML を PDF に変換する2つの方法を提供します。1つは QT Web プラグインを使用する方法で、もう1つはプラグインを使用しない方法です。QT プラグインを使用して変換を行うことをお勧めします。

次のセクションでは、QT プラグインの有無にかかわらず Spire.PDF for .NET を使用して HTMLWeb ページ (URL) または HTML 文字列を PDF ドキュメントにレンダリングする方法を示します。

Spire.PDF for.NET をインストールします

まず、Spire.PDF for.NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.PDF

プラグインをダウンロードする

プラグイン方式を選択した場合は、以下のリンクからご使用のオペレーティングシステムに適合するプラグインをダウンロードしてください。

パッケージをディスクに解凍して、「プラグイン」フォルダを取得します。この例では、プラグインをパス「F:\ Libraries \ Plugin \ plugins-windows-x64\plugins」の下に保存しました。

C#/VB.NET HTML を PDF に変換する方法

また、プロジェクトの「プラットフォームターゲット」をそれに応じて x64 または x86 に設定することをお勧めします。

QT プラグインを使用して URL を PDF に変換する

以下は、QT プラグインで Spire.PDF を使用して URL を PDF に変換する手順です。

  • 変換する URL パスを指定します。
  • 生成された PDF ファイルのパスを指定します。
  • プラグインパスを指定し、HtmlConverter.PluginPath プロパティの値として割り当てます。
  • HtmlConverter.Convert(string url、string fileName、bool enableJavaScript、int timeout、SizeF pageSize、PdfMargins margins) メソッドを呼び出して、URL を PDF ドキュメントに変換します。
  • C#
  • VB.NET
using Spire.Pdf.Graphics;
using Spire.Pdf.HtmlConverter.Qt;
using System.Drawing;

namespace ConvertUrlToPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            //URLパスを指定する
            string url = "https://www.wikipedia.org/";

            //出力ファイルのパスを指定する
            string fileName = "UrlToPdf.pdf";

            //プラグインパスを指定する
            string pluginPath = "F:\\Libraries\\Plugin\\plugins-windows-x64\\plugins";

            //プラグインパスを設定する
            HtmlConverter.PluginPath = pluginPath;

            //URLをPDFに変換する
            HtmlConverter.Convert(url, fileName, true, 100000, new Size(1080, 1000), new PdfMargins(0));
        }
    }
}
Imports Spire.Pdf.Graphics
Imports Spire.Pdf.HtmlConverter.Qt
Imports System.Drawing
 
Namespace ConvertUrlToPdf
    Class Program
        Shared  Sub Main(ByVal args() As String)
            'URLパスを指定する
            Dim url As String =  "https://www.wikipedia.org/" 
 
            '出力ファイルのパスを指定する
            Dim fileName As String =  "UrlToPdf.pdf" 
 
            'プラグインパスを指定する
            Dim pluginPath As String =  "F:\\Libraries\\Plugin\\plugins-windows-x64\\plugins" 
 
            'プラグインパスを設定する
            HtmlConverter.PluginPath = pluginPath
 
            'URLをPDFに変換する
            HtmlConverter.Convert(url, fileName, True, 100000, New Size(1080, 1000), New PdfMargins(0))
        End Sub
    End Class
End Namespace

QT プラグインを使用して HTML 文字列を PDF に変換する

以下は、QT プラグインで Spire.PDF を使用して HTML 文字列を PDF に変換する手順です。

  • .html ファイルから HTML 文字列を取得します。
  • 生成された PDF ファイルのパスを指定します。
  • プラグインパスを指定し、HtmlConverter.PluginPath プロパティの値として割り当てます。
  • HtmlConverter.Convert(string htmlString、string fileName、bool enableJavaScript、int timeout、SizeF pageSize、PdfMargins margins、Spire.Pdf.HtmlConverter.LoadHtmlType htmlType) メソッドを呼び出して、HTML 文字列をPDFドキュメントに変換します。

:PDF で正しくレンダリングできるのは、インライン CSS スタイルと内部 CSS スタイルのみです。外部 CSS スタイルシートをお持ちの場合は、インラインまたは内部 CSS スタイルに変換してください。

  • C#
  • VB.NET
using System.IO;
using Spire.Pdf.HtmlConverter.Qt;
using System.Drawing;
using Spire.Pdf.Graphics;

namespace ConvertHtmlStringToPdfWithPlugin
{
    class Program
    {
        static void Main(string[] args)
        {
            //.htmlファイルからHTML文字列を取得する
            string htmlString = File.ReadAllText(@"C:\Users\Administrator\Desktop\Document\Html\Sample.html");

            //出力ファイルのパスを指定する
            string fileName = "HtmlStringToPdf.pdf";

            //プラグインパスを指定する
            string pluginPath = "F:\\Libraries\\Plugin\\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);
        }
    }
}
Imports System.IO
Imports Spire.Pdf.HtmlConverter.Qt
Imports System.Drawing
Imports Spire.Pdf.Graphics
 
Namespace ConvertHtmlStringToPdfWithPlugin
    Class Program
        Shared  Sub Main(ByVal args() As String)
            '.htmlファイルからHTML文字列を取得する
            Dim htmlString As String =  File.ReadAllText("C:\Users\Administrator\Desktop\Document\Html\Sample.html") 
 
            '出力ファイルのパスを指定する
            Dim fileName As String =  "HtmlStringToPdf.pdf" 
 
            'プラグインパスを指定する
            Dim pluginPath As String =  "F:\\Libraries\\Plugin\\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)
        End Sub
    End Class
End Namespace

プラグインなしで URL を PDF に変換する

以下は、プラグインなしで Spire.PDF を使用して URL を PDF に変換する手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfPageSettings オブジェクトを作成し、それを介してページサイズとマージンを設定します。
  • PdfHtmlLayoutFormat オブジェクトを作成し、その IsWaiting プロパティを true に設定します。
  • 変換する URL パスを指定します。
  • PdfDocument.LoadFromHTML() メソッドを使用して URL パスから HTML をロードします。
  • PdfDocument.SaveToFile() メソッドを使用してドキュメントを PDF ファイルに保存します。
  • C#
  • VB.NET
using System;
using Spire.Pdf;
using System.Threading;
using Spire.Pdf.HtmlConverter;
using System.Drawing;

namespace ConverUrlToPdfWithoutPlugin
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentオブジェクトを作成する
            PdfDocument doc = new PdfDocument();

            //PdfPageSettingsオブジェクトを作成する
            PdfPageSettings setting = new PdfPageSettings();

            //オブジェクトを介してページサイズと余白を節約する
            setting.Size = new SizeF(1000, 1000);
            setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);

            //PdfHtmlLayoutFormatオブジェクトを作成する
            PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();

            //IsWaitingプロパティをtrueに設定する
            htmlLayoutFormat.IsWaiting = true;

            //変換するURLパスを指定する
            String url = "https://www.Wikipedia.com/";

            //LoadFromHTMLメソッドを使用してURLパスからHTMLをロードする
            Thread thread = new Thread(() =>
            { doc.LoadFromHTML(url, true, true, false, setting, htmlLayoutFormat); });
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            thread.Join();

            //ドキュメントをPDFファイルとして保存する
            doc.SaveToFile("UrlToPdf.pdf");
            doc.Close();
        }
    }
}
Imports System
Imports Spire.Pdf
Imports System.Threading
Imports Spire.Pdf.HtmlConverter
Imports System.Drawing
 
Namespace ConverUrlToPdfWithoutPlugin
    Class Program
        Shared  Sub Main(ByVal args() As String)
            'PdfDocumentオブジェクトを作成する
            Dim doc As PdfDocument =  New PdfDocument() 
 
            'PdfPageSettingsオブジェクトを作成する
            Dim setting As PdfPageSettings =  New PdfPageSettings() 
 
            'オブジェクトを介してページサイズと余白を節約する
            setting.Size = New SizeF(1000, 1000)
            setting.Margins = New Spire.Pdf.Graphics.PdfMargins(20)
 
            'PdfHtmlLayoutFormatオブジェクトを作成する
            Dim htmlLayoutFormat As PdfHtmlLayoutFormat =  New PdfHtmlLayoutFormat() 
 
            'IsWaitingプロパティをtrueに設定する
            htmlLayoutFormat.IsWaiting = True
 
            '変換するURLパスを指定する
            Dim url As String =  "https://www.Wikipedia.com/" 
 
            'LoadFromHTMLメソッドを使用してURLパスからHTMLをロードする
            Thread thread = New Thread(() =>
            {
            	 doc.LoadFromHTML(url, True, True, False, setting, htmlLayoutFormat) 
            }
)
            thread.SetApartmentState(ApartmentState.STA)
            thread.Start()
            thread.Join()
 
            'ドキュメントをPDFファイルとして保存する
            doc.SaveToFile("UrlToPdf.pdf")
            doc.Close()
        End Sub
    End Class
End Namespace

プラグインなしで HTML 文字列を PDF に変換する

以下は、プラグインなしで Spire.PDF を使用して HTML 文字列を PDF に変換する手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfPageSettings オブジェクトを作成し、それを介してページサイズとマージンを設定します。
  • PdfHtmlLayoutFormat オブジェクトを作成し、その IsWaiting プロパティを true に設定します。
  • .html ファイルから HTML 文字列を読み取ります。
  • PdfDocument.LoadFromHTML() メソッドを使用して HTML 文字列から HTML をロードします。
  • PdfDocument.SaveToFile() メソッドを使用してドキュメントを PDF ファイルに保存します。
  • C#
  • VB.NET
using Spire.Pdf;
using Spire.Pdf.HtmlConverter;
using System.IO;
using System.Threading;
using System.Drawing;

namespace ConvertHtmlStringToPdfWithoutPlugin
{
    class Program
    {
        static void Main(string[] args)
        {
            //PdfDocumentオブジェクトを作成する
            PdfDocument doc = new PdfDocument();

            //PdfPageSettingsオブジェクトを作成する
            PdfPageSettings setting = new PdfPageSettings();

            //オブジェクトを介してページサイズと余白を節約する
            setting.Size = new SizeF(1000, 1000);
            setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);

            //PdfHtmlLayoutFormatオブジェクトを作成する
            PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();

            //IsWaitingプロパティをtrueに設定する
            htmlLayoutFormat.IsWaiting = true;

            //.htmlファイルからhtml文字列を読み取る
            string htmlString = File.ReadAllText(@"C:\Users\Administrator\Desktop\Document\Html\Sample.html");

            //LoadFromHTMLメソッドを使用してhtml文字列からHTMLをロードする
            Thread thread = new Thread(() =>
            { doc.LoadFromHTML(htmlString, true, true, false, setting, htmlLayoutFormat); });
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            thread.Join();

            //PDFファイルとして保存する
            doc.SaveToFile("HtmlStringToPdf.pdf");
        }
    }
}
Imports Spire.Pdf
Imports Spire.Pdf.HtmlConverter
Imports System.IO
Imports System.Threading
Imports System.Drawing
 
Namespace ConvertHtmlStringToPdfWithoutPlugin
    Class Program
        Shared  Sub Main(ByVal args() As String)
            'PdfDocumentオブジェクトを作成する
            Dim doc As PdfDocument =  New PdfDocument() 
 
            'PdfPageSettingsオブジェクトを作成する
            Dim setting As PdfPageSettings =  New PdfPageSettings() 
 
            'オブジェクトを介してページサイズと余白を節約する
            setting.Size = New SizeF(1000, 1000)
            setting.Margins = New Spire.Pdf.Graphics.PdfMargins(20)
 
            'PdfHtmlLayoutFormatオブジェクトを作成する
            Dim htmlLayoutFormat As PdfHtmlLayoutFormat =  New PdfHtmlLayoutFormat() 
 
            'IsWaitingプロパティをtrueに設定する
            htmlLayoutFormat.IsWaiting = True
 
            '.htmlファイルからhtml文字列を読み取る
            Dim htmlString As String =  File.ReadAllText("C:\Users\Administrator\Desktop\Document\Html\Sample.html") 
 
            'LoadFromHTMLメソッドを使用してhtml文字列からHTMLをロードする
            Thread thread = New Thread(() =>
            {
            	 doc.LoadFromHTML(htmlString, True, True, False, setting, htmlLayoutFormat) 
            }
)
            thread.SetApartmentState(ApartmentState.STA)
            thread.Start()
            thread.Join()
 
            'PDFファイルとして保存する
            doc.SaveToFile("HtmlStringToPdf.pdf")
        End Sub
    End Class
End Namespace

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 965 times