Эта страница может содержать автоматически переведенный текст.

HTML в PDF для .NET

С помощью библиотеки Docotic.Pdf можно конвертировать HTML в PDF. Бесплатное дополнение HtmlToPdf к этой библиотеке делает возможной конвертацию HTML, SVG, WEBP и других веб-форматов в PDF.

В этом руководстве описаны функции HTML в PDF, предоставляемые дополнением, и приведены ссылки на страницы с дополнительной информацией по обсуждаемым темам.

Иллюстрация процессов внутри библиотеки преобразования HTML в PDF. HTML-документ поступает в библиотеку, которая затем генерирует PDF-файл.

Основы преобразования HTML в PDF на C#

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

Установите дополнение из NuGet.

Install-Package BitMiracle.Docotic.Pdf.HtmlToPdf

Это рекомендуемый способ, поскольку он автоматически обрабатывает зависимости и обновления. Вы также можете установить дополнение вручную из ZIP-архива с бинарными файлами Docotic.Pdf, хотя это более сложный и подверженный ошибкам способ.

Получите лицензионный ключ

Чтобы попробовать библиотеку, получите бесплатный лицензионный ключ с ограниченным сроком действия на странице загрузки Docotic.Pdf. Если вы уже приобрели лицензию, используйте код, предоставленный вам после покупки.

Все лицензии Docotic.Pdf включают функцию преобразования HTML в PDF. Для использования дополнения не требуется приобретать дополнительную лицензию.

Добавьте код для конвертации

BitMiracle.Docotic.LicenseManager.AddLicenseData("PUT-LICENSE-HERE");

using var converter = await HtmlConverter.CreateAsync();
var html = "<h1>Hello, World<h1>";
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("output.pdf");

В коде замените значение-заглушку в вызове метода AddLicenseData на действительный лицензионный ключ.

Запустите код

Код преобразования создаст PDF-файл из HTML-кода в строке. При использовании параметров преобразования по умолчанию, на выходе получится одна страница формата A4.

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

Подробнее о различных способах преобразования HTML в PDF читайте в отдельной статье, где подробно описан каждый способ.

Почему Docotic.Pdf — это подходящий конвертер HTML в PDF?

Способность сохранять стили и макеты во время конвертации делает Docotic.Pdf правильным выбором для создания PDF-файлов из HTML-отчетов, счетов-фактур и других документов. Библиотека создает PDF-документы с идеальной точностью из HTML и других веб-форматов, таких как SVG. С помощью этой библиотеки легко повторно использовать существующий HTML-контент.

Конвертер использует механизм рендеринга Google Chrome. Это означает тот же уровень соответствия веб-стандартам, что и у одного из лучших веб-браузеров.

Вы можете использовать Docotic.Pdf для создания PDF-файлов из очень сложных макетов с использованием современных CSS, JavaScript и изображений. Помимо прочего, отлично поддерживается адаптивный веб-дизайн.

Обзор архитектуры API

API преобразования HTML в PDF доступен только при использовании Docotic.Pdf вместе с бесплатным дополнением HtmlToPdf.

Дополнение предоставляет API, работающий исключительно в асинхронном режиме. Мы разработали API для работы с асинхронными обработчиками событий и асинхронными методами. Такой API позволяет корректно обрабатывать длительные задачи, а преобразование медиафайлов является идеальным примером такой задачи.

Поддержка версий .NET и платформ

Библиотека и дополнение ориентированы на .NET Standard 2.0. Это означает, что они совместимы с .NET 5 – .NET 10. Кроме того, поддерживаются .NET Core 2.0+ и .NET Framework 4.6.1+.

Функции преобразования HTML в PDF можно использовать в приложениях Windows Forms, WPF, ASP.NET и консольных приложениях. Дополнение может работать в облачных средах и в контейнерах Docker.

С помощью дополнения вы можете генерировать PDF из HTML в средах Windows, macOS и Linux.

Что происходит во время конвертации?

По умолчанию преобразование состоит из следующих этапов:

  1. Ваш код вызывает метод CreateAsync класса HtmlConverter.
  2. Дополнение проверяет, есть ли подходящая версия Google Chrome в папке .local-chromium внутри текущего рабочего каталога.
  3. Если подходящей версии нет, дополнение загружает её и распаковывает в папку .local-chromium.
  4. Когда ваш код вызывает метод CreatePdfAsync или CreatePdfFromStringAsync, дополнение использует Google Chrome для загрузки предоставленного HTML-кода.
  5. Когда контент готов к преобразованию, дополнение даёт указание браузеру создать PDF-файл.
  6. Google Chrome генерирует PDF-файл, используя возможности рендеринга Chromium.
  7. Дополнение возвращает в ваш код объект PdfDocument, содержащий созданный PDF-файл.

Облачные платформы и образы Docker

Дополнение HtmlToPdf поддерживает облачные платформы Azure и AWS, включая бессерверные среды. Вы также можете использовать API преобразования HTML в PDF в контейнерах Docker. Вот список поддерживаемых сред:

  • Azure: Azure Functions, Azure App Service, Azure VPS
  • Amazon Web Services: AWS ECS, Amazon EC2
  • Docker: Контейнеры Windows и Linux.

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

Дополнительную информацию смотри в статье о запуске дополнения в облаках и в образах Docker.

Какие типы лицензий поддерживаются для облачных приложений?

В большинстве случаев вам потребуется лицензия без привязки к конкретному серверу (Ultimate или Ultimate+). Серверная лицензия также может подойти, если идентификатор оборудования не меняется.

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

Чтобы убедиться, что идентификатор оборудования вашего сервера не меняется, вы можете проверить значение свойства LicenseManager.Uid. В качестве альтернативы вы можете использовать наше приложение-генератор UID для получения того же идентификатора.

Как сгенерировать PDF-файл из HTML-шаблона

Выполните следующие простые шаги:

  1. Получите данные для шаблона.
  2. Заполните шаблон данными, чтобы получить полный HTML-код.
  3. Используйте Docotic.Pdf для преобразования полного HTML-кода в PDF.

Иллюстрация того, как создать PDF-файл из HTML-шаблона. Данные для заглушек дополняют шаблон перед его преобразованием в PDF.

Данные для шаблонна обычно поступают из базы данных или из ответа некоего API. В случае базы данных это может быть одна запись или набор записей. В случае API это часто объект JSON, описывающий одну или несколько сущностей.

В примерах ниже я буду использовать этого вымышленного человека:

var person = new
{
    Name = "Alice Johnson",
    Age = 27,
    Email = "alicej@example.com",
    Occupation = "Truck driver"
};

Теперь, когда у меня есть данные, я представлю три варианта подготовки и заполнения HTML-шаблона. Во всех трех случаях итоговый HTML-код будет одинаковым, даже несмотря на то, что соответствующие шаблоны разные.

Для преобразования всего HTML-кода используйте код, который я предоставил ранее.

Именованные заглушки

Именованные заглушки — это токены, заключенные в двойные разделители, использующие символы, не являющиеся буквами или цифрами. Одним из наиболее устойчивых к коллизиям разделителей является %%.

Вот шаблон с именованными заглушками, а также код, который генерирует из него полный HTML-код:

var template = @"<head><title>%%NAME%%'s Profile</title></head>
<body>
    <h1>%%NAME%%</h1>
    <p><strong>Age:</strong> %%AGE%%</p>
    <p><strong>Email:</strong> %%EMAIL%%</p>
    <p><strong>Occupation:</strong> %%OCCUPATION%%</p>
</body></html>";

var completeHtml = template
    .Replace("%%NAME%%", person.Name)
    .Replace("%%AGE%%", person.Age.ToString())
    .Replace("%%EMAIL%%", person.Email)
    .Replace("%%OCCUPATION%%", person.Occupation);

В большинстве случаев рекомендуется использовать именованные заглушки. Однако не забудьте экранировать любые значения, которые вы вставляете вместо заглушек.

Шаблонные движки

Если ваш шаблон очень сложный и/или требует повторного использования некоторых частей, именованные заглушки могут оказаться не очень удобными. Вместо этого попробуйте использовать шаблонизатор, например, Handlebars.Net.

Вот пример, использующий другой шаблон и код, но создающий такой же HTML-код:

var template = @"<head><title>{{name}}'s Profile</title></head>
<body>
    <h1>{{name}}</h1>
    <p><strong>Age:</strong> {{age}}</p>
    <p><strong>Email:</strong> {{email}}</p>
    <p><strong>Occupation:</strong> {{occupation}}</p>
</body></html>";

var compiledTemplate = Handlebars.Compile(template);
var completeHtml = compiledTemplate(person);

Шаблоны Handlebars.Net не содержат логики. Если это кажется слишком ограничивающим, попробуйте Scriban. Он предоставляет условные операторы, циклы, выражения, вызовы функций и многое другое.

Позиционные заглушки

Они очень похожи на именованные заглушки, но используют номера позиций вместо имен. Вы видели такие в вызовах метода string.Format.

var template = @"<head><title>{0}'s Profile</title></head>
<body>
    <h1>{1}</h1>
    <p><strong>Age:</strong> {2}</p>
    <p><strong>Email:</strong> {3}</p>
    <p><strong>Occupation:</strong> {4}</p>
</body></html>";

var completeHtml = string.Format(
    template, person.Name, person.Name,
    person.Age, person.Email, person.Occupation);

Я рекомендую не использовать позиционные заглушки ни для чего, кроме самых простых случаев. Вот несколько причин:

  • Если шаблон использует значение более одного раза, вам необходимо указать это значение несколько раз в вызове.
  • Слишком легко изменить порядок в шаблоне, но забыть обновить код.

Преобразовать ASPX в PDF

Используйте Docotic.Pdf вместе с бесплатным дополнением HtmlToPdf для преобразования ASPX в PDF. Процесс прост:

  • Предоставьте реализацию метода Render, которая накапливает сгенерированный HTML.
  • Позвольте движку ASP.NET сгенерировать HTML для страницы ASPX, выполнив серверный код и элементы управления.
  • Преобразуйте накопленный HTML в PDF и верните PDF в обновленном ответе.

Посмотрите пример кода, чтобы увидеть, как сгенерировать PDF из страницы ASPX в приложении ASP.NET Web Forms. Пример приложения демонстрирует описанный выше процесс, создавая счет-фактуру в формате HTML или PDF. Вы можете использовать тот же подход для создания высококачественных PDF-версий ваших отчетов, выписок и других документов.

Преобразовать SVG в PDF

Преобразование SVG в векторный PDF возможно с помощью дополнения HtmlToPdf для библиотеки Docotic.Pdf. Вы можете использовать класс HtmlConverter в качестве конвертера SVG в PDF. Следующий код на C# демонстрирует один из способов выполнения преобразования:

using var converter = await HtmlConverter.CreateAsync();
var uri = new Uri("https://bitmiracle.com/images/team.svg");
using var pdf = await converter.CreatePdfAsync(uri);
pdf.Save("output.pdf");

Результатом работы приведенного выше кода является высококачественный векторный PDF-файл. Конвертер, предоставляемый дополнением HtmlToPdf, использует ширину и высоту, указанные в SVG-файле, для определения соотношения сторон. В зависимости от размера SVG-файла, конвертер может пропорционально масштабировать его, чтобы он соответствовал размеру страницы PDF-файла.

Параметры, влияющие на размер выходной страницы

Чтобы создать PDF-файл другого размера, задайте размер страницы и/или поля. Преобразованный SVG-файл по-прежнему может масштабироваться пропорционально.

Другой вариант — указать ширину и/или высоту SVG-файла в HTML-коде и преобразовать этот HTML-код. В результате изображение будет иметь указанный размер. Если размер больше, чем размер страницы PDF-файла, некоторые части изображения будут невидимы.

using var converter = await HtmlConverter.CreateAsync();
var html = $"<img src='https://bitmiracle.com/images/team.svg' width='200' />";
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("output.pdf");

SVG-файл в PDF

Для преобразования SVG-файла в PDF создайте файловый Uri и передайте его методу CreatePdfAsync. Другой вариант — создать HTML-фрагмент с тегом img и использовать этот фрагмент с методом CreatePdfFromStringAsync. Если вы используете относительные пути в HTML-коде, укажите базовый URL через параметры преобразования.

Для преобразования нескольких SVG-файлов в PDF создайте HTML-фрагмент, содержащий несколько тегов img, и используйте его с методом CreatePdfFromStringAsync. Если все файлы находятся в одной папке, я рекомендую использовать относительные пути в HTML-коде и указывать базовый URL.

Добавление SVG в PDF

Для начала преобразуйте SVG в PDF, используя один из методов HtmlConverter.

using var converter = await HtmlConverter.CreateAsync();
var uri = new Uri("https://bitmiracle.com/images/quote.svg");
using var svgPdf = await converter.CreatePdfAsync(uri);

Затем вы можете либо наложить содержимое полученного PDF-файла поверх другого документа, либо объединить документ с другим PDF-файлом.

Чтобы наложить SVG-изображение на PDF-файл, создайте объект XObject из первой страницы преобразованного документа и нарисуйте этот объект XObject поверх страницы PDF-файла в другом документе. Вот так:

using var pdf = new PdfDocument("some-other.pdf");
var xObj = pdf.CreateXObject(svgPdf.Pages[0]);

pdf.Pages[0].Canvas.DrawXObject(xObj, 0, 0);
pdf.Save("output.pdf");

Чтобы объединить SVG-файл с PDF-файлом, объедините преобразованный PDF-документ с другим PDF-файлом, используя один из доступных способов объединения.

Преобразовать WEBP в PDF

WebP — это веб-формат, поэтому вы можете преобразовать его в PDF с помощью Docotic.Pdf с надстройкой HtmlToPdf. Следующий код на C# демонстрирует, как преобразовать WebP в PDF с высоким качеством:

using var converter = await HtmlConverter.CreateAsync();
var html = $"<img src='https://bitmiracle.com/pdf-library/images/edit/reorder-pages.webp'/>";
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("output.pdf");

Приведённый выше код не указывает атрибуты width или height для тега img, но их добавление желательно. Имейте в виду, что если указанный вами размер изображения превышает размер страницы PDF, некоторые части изображения будут невидимы.

Поскольку WebP — растровый формат, он плохо масштабируется. Я рекомендую использовать изображения максимального размера и разрешения, которые вам необходимы.

Для преобразования файла WebP в PDF используйте тот же код. Если ваш HTML использует относительные пути, укажите базовый URL через параметры загрузки. Используйте файловый Uri в качестве базового URL при преобразовании локальных изображений.

Преобразование XML в PDF с помощью XSLT

Для преобразования XML в PDF сначала преобразуйте XML в HTML с помощью XSLT-преобразования. Затем преобразуйте полученный HTML в PDF, используя Docotic.Pdf с надстройкой HtmlToPdf.

Вот код преобразования XML в PDF на C#:

var transform = CreateTransform("invoice.xsl");
var html = TransformToHtml("invoice.xml", transform);

using var converter = await HtmlConverter.CreateAsync();
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("invoice.pdf");

Этот код:

  • В первой строке создаёт объект преобразования XSLT.
  • Во второй строке преобразует XML-файл в HTML-документ.
  • В остальных строках конвертирует результат преобразования (HTML-строку) в PDF.

Давайте подробнее рассмотрим первые два пункта. Третий пункт полностью рассмотрен в этом разделе.

Создание XSLT-преобразования

Первым шагом в процессе преобразования является создание объекта XSLT-преобразования. Следующий код демонстрирует, как создать такой объект:

public static XslCompiledTransform CreateTransform(string xsltFileName)
{
    var transform = new XslCompiledTransform();
    transform.Load(xsltFileName);
    return transform;
}

Как следует из названия, XslCompiledTransform компилирует предоставленную таблицу стилей и генерирует из неё IL-код. Если вашему коду необходимо преобразовывать XML в PDF в пакетном режиме, используйте один и тот же объект преобразования для повышения производительности.

Преобразование XML в HTML

Второй шаг — генерация HTML из XML с использованием объекта преобразования XSLT, созданного на предыдущем шаге.

public static string TransformToHtml(string xmlFileName, XslCompiledTransform transform)
{
    using var xmlReader = XmlReader.Create(xmlFileName);
    using var sw = new StringWriter();
    using var writer = XmlWriter.Create(sw, transform.OutputSettings);
    transform.Transform(xmlReader, null, writer);
    return sw.ToString();
}

В коде используются XmlReader и XmlWriter, поскольку они хорошо подходят для больших XML-файлов и помогают снизить потребление памяти.

Пример кода для преобразования XML в PDF

В нашем репозитории примеров содержатся C# и VB.NET версии приложения для преобразования XML-счета в PDF. Приложение содержит образец XML-счета и соответствующую таблицу стилей XSLT.

Современный браузер при переходе по URL-адресу, возвращающему XML-файл, может автоматически применить связанный XSLT (если он присутствует) для генерации и отображения читаемого HTML. Это работает только в том случае, если XML-файл и XSLT-файл размещены на одном сервере. Чтобы предотвратить междоменные запросы, браузер не будет загружать или применять таблицу стилей, если вы открываете XML-файл непосредственно из локальной файловой системы.

Компромиссы и альтернативные способы создания PDF-файлов

API преобразования HTML в PDF — не единственный способ создания PDF-файлов с помощью Docotic.Pdf, и он не всегда является самым эффективным. Этот раздел описывает альтернативные варианты, чтобы помочь вам выбрать подходящий для вашей ситуации.

Иллюстрация с методами создания PDF-файлов: с помощью преобразования HTML в PDF, через Canvas API, генерацией на основе шаблонов, через Layout API и объединением.

Когда преобразование HTML в PDF — правильный выбор

Используйте преобразования HTML в PDF, если ваша команда уже создает документы с помощью HTML/CSS. Особенно, если ваши документы напоминают веб-страницы: счета-фактуры, заказы на покупку, сертификаты, квитанции и тому подобное.

Дополнение HtmlToPdf позволяет командам повторно использовать существующие шаблоны HTML/CSS и воспользоваться преимуществами высококачественной верстки и рендеринга. С помощью этого дополнения путь к высококачественному PDF-файлу может быть максимально быстрым.

Ограничения, которые следует учитывать

API преобразования HTML в PDF использует механизм рендеринга HTML в Google Chrome. Этот механизм мощный, но сопряжен с дополнительными затратами. Типичное преобразование HTML в PDF потребляет больше ресурсов процессора и памяти, чем, например, непосредственное рисование на холсте страницы PDF. Эти накладные расходы могут замедлить генерацию большого числа документов в пакетном режиме.

Движок браузера также увеличивает объем памяти, необходимый для выполнения, что может быть нежелательно в минимальных образах Docker или в средах с ограниченными ресурсами. Например, API может не работать в бессерверных средах с очень строгими ограничениями на потребление памяти и время выполнения.

Другие способы создания PDF-файлов в Docotic.Pdf

Библиотека Docotic.Pdf предоставляет несколько других способов создания документов, каждый из которых подходит для различных задач:

  • Прямое создание PDF-файлов через Canvas API
    Идеально подходит для структурированных, предсказуемых макетов, таких как билеты, этикетки или формы. Обеспечивает максимальную производительность и полный контроль над координатами, типографикой и размещением контента.

  • Генерация PDF-файлов на основе шаблонов
    Зачастую это лучший выбор при работе с утвержденными шаблонами, соответствующими требованиям законодательства. Вы начинаете с существующего PDF-файла, заполняете поля, заменяете заглушки и прикрепляете связанные документы, если необходимо.

  • Создание PDF-файлов с помощью Layout API
    Предоставляет базовые элементы, такие как страницы, контейнеры, изображения, абзацы текста и другие элементы макета. Вы описываете макет PDF полностью в коде с помощью текучего API, и библиотека генерирует PDF на основе вашего макета.

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

Сравнение с другими решениями для преобразования HTML в PDF

Чтобы помочь вам выбрать подходящую библиотеку для преобразования HTML в PDF для .NET, ниже приведена информация о том, как Docotic.Pdf с надстройкой HtmlToPdf соотносится с другими популярными решениями для преобразования HTML в PDF.

Основные выводы сравнения

Большинство браузерных решений обеспечивают высококачественную отрисовку и полностью поддерживают современные HTML, CSS и JavaScript. Однако есть важные различия.

Решение Когда использовать Лучше всего подходит для
Docotic.Pdf с надстройкой HtmlToPdf Для преобразования отчетов, счетов-фактур и квитанций с безупречной визуальной точностью Для профессионального программного обеспечения, требующего как преобразования HTML в PDF, так и редактирования PDF-файлов, с профессиональной технической поддержкой
Puppeteer Когда требуется современная отрисовка HTML/CSS/JS с точностью до уровня браузера и необходим только вывод HTML в PDF Для создания PDF-файлов с идеальной точностью при требовании бесплатности или открытого исходного кода
IronPDF Если у вашей команды есть лицензия Iron Suite или опыт работы с IronPDF Для команд, использующих несколько компонентов Iron Software
wkhtmltopdf Когда требуется относительно небольшой размер установки, а ваш HTML/CSS-код прост и не содержит внешних или ненадежных ссылок Для совместимости с устаревшими системами, уже использующими wkhtmltopdf

Подробное сравнение

Ознакомьтесь с информацией в таблице, чтобы получить полную картину и сделать собственные выводы.

  Docotic.Pdf с HtmlToPdf Puppeteer IronPDF wkhtmltopdf
Движок Headless Chrome Headless Chrome / Chromium Headless Chrome Устаревший Qt WebKit
Точность рендеринга С точностью до пикселя С точностью до пикселя С точностью до пикселя С точностью до пикселя, но с особенностями и ограничениями
Поддержка HTML5 Полная Полная Полная Частичная и ограниченная
Поддержка CSS3 Полная Полная Полная Крайне ограниченная
Поддержка JavaScript Полная Полная Полная Частичная и устаревшая
Интеграция с кодом .NET Async .NET API Async .NET API с PuppeteerSharp; скрипты для Node.js без него. Async .NET API Процесс командной строки или библиотека-обертка на C# (например, DinkToPdf)
Возможности PDF, кроме преобразования из HTML Обширные Отсутствуют Ограниченные Отсутствуют
Поддержка Коммерческая, есть приоритетная поддержка От сообщества, есть приоритетная поддержка для спонсоров PuppeteerSharp Коммерческая, есть приоритетная поддержка От сообщества без формальных каналов поддержки
Обслуживание Активно обслуживается Активно обслуживается Активно обслуживается Больше не обслуживается
Лицензия Коммерческая, с бесплатными лицензиями для соответствующих сценариев использования Apache-2.0; MIT для PuppeteerSharp Коммерческая LGPL-3.0; MIT для DinkToPdf
Права на распространение Без лицензионных отчислений со всеми типами лицензий Без лицензионных отчислений со всеми типами лицензий В комплект не входят; требуется отдельная покупка Без лицензионных отчислений со всеми типами лицензий
Лицензии для разработчиков Неограниченное количество разработчиков со всеми типами лицензий Неограниченное количество разработчиков со всеми типами лицензий Зависит от уровня лицензии; неограниченное число разработчиков только в лицензии самого высокого уровня Неограниченное количество разработчиков со всеми типами лицензий
Онлайн-проверка лицензии Онлайн-проверка не требуется Проверка лицензии не проводится Требуется для всех лицензий, кроме самой дорогой лицензии Проверка лицензии не проводится

Заключение

Docotic.Pdf с дополнением HtmlToPdf обеспечивает надежное и высококачественное преобразование HTML в PDF, а также полнофункциональный API для работы с PDF. Библиотека отлично подходит для генерации PDF-отчетов, счетов-фактур, квитанций и других деловых документов из HTML, сохраняя безупречную визуальную точность.

Дополнение предоставляет асинхронный API .NET, который работает полностью локально. Ваши данные никогда не покидают ваши серверы, что дает вам полный контроль над безопасностью и конфиденциальностью.

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

Вы можете объединять итоговые документы путем слияния нескольких сгенерированных PDF-файлов. Если после преобразования в HTML или слияния PDF-файл становится слишком большим, библиотека может удалить дублирующиеся объекты внутри файла и применить другие методы для уменьшения размера файла. Для улучшения удобства чтения Docotic.Pdf также может оптимизировать PDF-файлы для Fast Web View (линеаризировать PDF).

Следующие шаги:

Часто задаваемые вопросы

Как выбрать библиотеку для преобразования HTML в PDF для .NET?

Перед выбором библиотеки определите и соберите свои требования. Вы сэкономите время при оценке, если будете знать, что библиотека-кандидат не может объединять преобразованные PDF-файлы, а эта функция необходима для вашего решения. Смотри раздел сравнения для сравнительного анализа популярных библиотек преобразования HTML в PDF для .NET.

Почему мой HTML-код некорректно отображается в PDF-файле?

Если ваш HTML-код отображается корректно в Google Chrome, но не в сгенерированном PDF-файле, проверьте параметры преобразования. Убедитесь, что ширины достаточно для размещения содержимого. Возможно, также потребуется выполнить JavaScript перед преобразованием.

Зачем использовать HTML-шаблоны вместо прямых PDF API?

Использование HTML-шаблонов делает ваше решение очень гибким в плане дизайна документов. Вы можете легко изменить внешний вид ваших PDF-файлов, используя мощные возможности стилизации HTML и CSS. Кроме того, вам не нужно дублировать дизайн ваших онлайн-документов с помощью PDF API.

Как преобразовать ASPX в PDF?

Для конвертации ASPX в PDF, позвольте движку ASP.NET сгенерировать HTML-код для страницы ASPX, а затем преобразуйте этот HTML-код в PDF с помощью библиотеки Docotic.Pdf. Более подробная информация доступна в соответствующем разделе.

Как наложить SVG-изображение на PDF-файл?

Чтобы наложить SVG-изображение на PDF-файл, сгенерируйте PDF-файл из SVG, затем создайте объект XObject из первой страницы сгенерированного документа. Поскольку объект XObject имеет прозрачный фон, вы можете разместить его поверх страницы PDF-файла в другом документе.

Как добавить водяной знак в сгенерированный PDF-файл?

Чтобы добавить водяной знак в PDF-документ, созданный из HTML, создайте объект XObject, заполните его содержимым водяного знака, а затем нарисуйте объект XObject поверх страниц документа. Для водяного знака можно использовать векторную графику, изображения и текст.

Docotic.Pdf лучше, чем wkhtmltopdf?

Docotic.Pdf полностью поддерживает современный HTML, CSS и JavaScript, в то время как wkhtmltopdf часто выдает непоследовательные результаты при отображении современных веб-документов. Кроме того, Docotic.Pdf предоставляет API, выходящие за рамки преобразования HTML в PDF. Например, библиотека может подписывать PDF-файлы с помощью цифровых подписей с поддержкой LTV, в то время как wkhtmltopdf может только конвертировать HTML.