Категория

C#/VB.NET: преобразование HTML в PDF

2023-07-21 02:53:56 zaki zou

Преобразование содержимого HTML в формат PDF дает множество преимуществ, в том числе возможность чтения в автономном режиме, а также сохранение содержимого и форматирования с высокой точностью. Spire.PDF предоставляет два метода преобразования HTML в PDF: один заключается в использовании веб-плагина QT, а другой — без использования плагина. Мы рекомендуем вам использовать плагин QT для преобразования.

В следующих разделах показано, как визуализировать Веб-страница в формате HTML (URL) или строку HTML в документ PDF с использованием Spire.PDF for .NET с подключаемым модулем QT или без него.

Установите Spire.PDF for .NET

Для начала вам нужно добавить файлы DLL, включенные в пакет Spire.PDF for .NET, в качестве ссылок в ваш проект .NET. Файлы DLL можно загрузить по этой ссылке или установить через NuGet.

PM> Install-Package Spire.PDF 

Скачать плагин

Если вы выберете метод плагина, загрузите плагин, который подходит для вашей операционной системы, по следующей ссылке.

Разархивируйте пакет где-нибудь на вашем диске, чтобы получить папку «плагины». В этом примере мы сохранили плагин по пути "F:\Libraries\Plugin\plugins-windows-x64\plugins‪‪".‬‬

C#/VB.NET: Convert HTML to PDF

Кроме того, мы рекомендуем вам установить «Целевая платформа» вашего проекта на x64 или x86 соответственно.

C#/VB.NET: Convert HTML to PDF

Преобразование URL-адреса в PDF с помощью плагина QT

Ниже приведены шаги для преобразования URL-адреса в PDF с помощью Spire.PDF с подключаемым модулем QT.

  • Укажите 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)
            {
                //Specify the URL path
                string url = "https://www.wikipedia.org/";
    
                //Specify the output file path
                string fileName = "UrlToPdf.pdf";
    
                //Specify the plugin path
                 string pluginPath = "F:\\Libraries\\Plugin\\plugins-windows-x64\\plugins";
    
                //Set the plugin path
                 HtmlConverter.PluginPath = pluginPath;
    
                //Convert URL to PDF
                HtmlConverter.Convert(url, fileName, true, 100000, new Size(1080, 1000), new PdfMargins(0));
            }
        }
    }

Преобразование строки HTML в PDF с помощью плагина QT

Ниже приведены шаги для преобразования строки HTML в PDF с помощью Spire.PDF с подключаемым модулем QT.

  • Получите строку 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.

Примечание. Только встроенный стиль CSS и внутренний стиль CSS могут правильно отображаться в PDF. Если у вас есть внешняя таблица стилей 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)
            {
                //Get the HTML string from a .html file
                string htmlString = File.ReadAllText(@"C:\Users\Administrator\Desktop\Document\Html\Sample.html");
    
                //Specify the output file path
                string fileName = "HtmlStringToPdf.pdf";
    
                //Specify the plugin path
                string pluginPath = "F:\\Libraries\\Plugin\\plugins-windows-x64\\plugins";
    
                //Set plugin path
                HtmlConverter.PluginPath = pluginPath;
    
                //Convert HTML string to PDF
                HtmlConverter.Convert(htmlString, fileName, true, 100000, new Size(1080, 1000), new PdfMargins(0), Spire.Pdf.HtmlConverter.LoadHtmlType.SourceCode);
            }
        }
    }

Преобразование URL в PDF без плагина

Ниже приведены шаги для преобразования URL-адреса в PDF с помощью Spire.PDF без плагина.

  • Создайте объект PdfDocument.
  • Создайте объект PdfPageSettings и задайте через него размер страницы и поля.
  • Создайте объект PdfHtmlLayoutFormat и задайте для его свойства IsWaiting значение true.
  • Укажите URL-адрес для преобразования.
  • Загрузите HTML из пути URL, используя метод PdfDocument.LoadFromHTML().
  • Сохраните документ в файл PDF с помощью метода PdfDocument.SaveToFile().
  • 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)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Create a PdfPageSettings object
                PdfPageSettings setting = new PdfPageSettings();
    
                //Save page size and margins through the object
                setting.Size = new SizeF(1000, 1000);
                setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);
    
                //Create a PdfHtmlLayoutFormat object
                PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();
    
                //Set IsWaiting property to true
                htmlLayoutFormat.IsWaiting = true;
    
                //Specific the URL path to convert
                String url = "https://www.wikipedia.org/";
    
                //Load HTML from a URL path using LoadFromHTML method
                Thread thread = new Thread(() =>
                { doc.LoadFromHTML(url, true, true, false, setting, htmlLayoutFormat); });
                thread.SetApartmentState(ApartmentState.STA);
                thread.Start();
                thread.Join();
    
                //Save the document to a PDF file
                doc.SaveToFile("UrlToPdf.pdf");
                doc.Close();
            }
        }
    }

Преобразование строки HTML в PDF без плагина

Ниже приведены шаги для преобразования строки HTML в PDF с помощью Spire.PDF без подключаемого модуля.

  • Создайте объект PdfDocument.
  • Создайте объект PdfPageSettings и задайте через него размер страницы и поля.
  • Создайте объект PdfHtmlLayoutFormat и задайте для его свойства IsWaiting значение true.
  • Прочитайте строку HTML из файла .html.
  • Загрузите HTML из строки HTML, используя метод PdfDocument.LoadFromHTML().
  • Сохраните документ в файл PDF с помощью метода PdfDocument.SaveToFile().
  • 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)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Create a PdfPageSettings object
                PdfPageSettings setting = new PdfPageSettings();
    
                //Save page size and margins through the object
                setting.Size = new SizeF(1000, 1000);
                setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);
    
                //Create a PdfHtmlLayoutFormat object
                PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();
    
                //Set IsWaiting property to true
                htmlLayoutFormat.IsWaiting = true;
    
                //Read html string from a .html file
                string htmlString = File.ReadAllText(@"C:\Users\Administrator\Desktop\Document\Html\Sample.html");
    
                //Load HTML from html string using LoadFromHTML method
                Thread thread = new Thread(() =>
                { doc.LoadFromHTML(htmlString, true, setting, htmlLayoutFormat); });
                thread.SetApartmentState(ApartmentState.STA);
                thread.Start();
                thread.Join();
    
                //Save to a PDF file
                doc.SaveToFile("HtmlStringToPdf.pdf");
            }
        }
    }

Подать заявку на временную лицензию

Если вы хотите удалить оценочное сообщение из сгенерированных документов или избавиться от функциональных ограничений, пожалуйста запросить 30-дневную пробную лицензию для себя.

Смотрите также