logo

Преобразование HTML в PDF в .NET: работа с таблицами

Быстрый ответ

Для преобразования HTML в PDF в .NET используйте DinkToPdf, это обёртка для .NET над командной утилитой WkHtmlToPdf. Пример кода на C#:

csharp
Скопировать код
var converter = new SynchronizedConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
    GlobalSettings = { PaperSize = PaperKind.A4 }, // Предпочитаем формат A4!
    Objects = {
        new ObjectSettings() { HtmlContent = @"<html><body>Здесь ваш HTML-код</body></html>" } // Сюда помещаем HTML-контент
    }
};
byte[] pdf = converter.Convert(doc); // Вуаля! Наш PDF готов
File.WriteAllBytes("result.pdf", pdf); // Все, PDF-файл сохранен на диске

Обязательное условие: установите через NuGet пакет DinkToPdf и добавьте библиотеку libwkhtmltox в директорию проекта. Подстройте размеры страницы и HTML под свои требования.

Выбор библиотеки: делаем осознанный выбор

Правильный выбор библиотеки — ключ к успешной конвертации HTML в PDF в .NET. Рассмотрим варианты:

HtmlRenderer.PdfSharp

Если вам нужно надёжное, потокобезопасное преобразование с поддержкой CSS и макетов, то выбирайте HtmlRenderer.PdfSharp.

iTextSharp: бесплатная и платная версии

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

Оптимален для MVC: Rotativa и TuesPechkin

Rotativa прекрасно справляется с преобразованием Razor Views в PDF в рамках MVC-приложений, а TuesPechkin хорошо работает вместе с C#.

Поддержка современных веб-стандартов

Если вам требуется работа с последними возможностями HTML5 и CSS3, используйте Selenium WebDriver или headless Chrome через PuppeteerSharp.

Параллельные преобразования: дело техники

WkHtmlToXSharp способен обрабатывать параллельные преобразования, в то время как ExpertPdfHtmlToPdf и SelectPDF предлагают разнообразные платные и бесплатные инструменты.

Решение типовых проблем и особенности работы

Прощайте, IE-конвертеры!

Не используйте конвертеры на базе IE — они несовместимы с современным веб-дизайном.

Специфические системные разрешения

Использование headless Chrome может потребовать определенных системных разрешений.

Совместимость с различными системами

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

Можно ли использовать window.print()?

Для простых задач уместно применить window.print() в JavaScript для создания PDF непосредственно из браузера.

NuGet на помощь!

Работа будет проходить гладко и быстрее с пакетами NuGet, такими как Selenium.WebDriver и ChromeDriver.

Расширенные опции для сложных задач

Уход за макетом

EO.Pdf и GemBox.Document предоставляют возможности для сложной верстки, включая работы с таблицами.

Обращаем внимание на лицензии

Если вы планируете коммерческое использование, выбирайте библиотеки с лицензиями типа BSD-UNSPECIFIED; HtmlRenderer.PdfSharp, например, используется в работе для большего комфорта.

Настройка и расширение

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

Визуализация

Сравним процесс преобразования HTML в PDF с бейкп the magic еарингом cookies:

Markdown
Скопировать код
Сырое печенье (🍪🌐): [HTML код]
  1. Выпекаем в .NET-печи (🔥👨‍💻): С помощью .NET-инструментов формируем конечную форму.
  2. Украшаем глазурью (🖋️✨): Накладываем стили CSS.
  3. Завершаем декорированием (📄💫): С помощью JavaScript дополняем детали документа.
Markdown
Скопировать код
Готовое украшенное печенье (🍪🎨): [PDF файл]

Не забывайте: Каждый этап важен при преобразовании исходного HTML-кода в полноценный PDF-документ.

Завершение: советы для эффективной конвертации

Хотите сэкономить?

Открытый исходный код позволит вам значительно сократить затраты. Однако помните, что выбор должен быть осознанным!

Готовые решения против кастомизации

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

Обучение и актуализация

Не забывайте регулярно изучать новые технологии и обновлять свою свои средства создания веб-контента.

Полезные материалы

  1. wkhtmltopdf — открытый инструмент для преобразования HTML в PDF.
  2. SelectPDF для .NET — коммерческая библиотека для преобразования HTML в PDF.
  3. GitHub – rdvojmoc/DinkToPdf — обертка .NET Core для преобразования HTML-страниц в PDF.
  4. GitHub – hardkoded/puppeteer-sharp — Headless Chrome .NET API для автоматизации действий в браузере и создания PDF.
  5. PDFsharp и MigraDoc Foundation — PDFsharp для обработки PDF в .NET.
  6. NuGet Gallery | HtmlRenderer.PdfSharp 1.5.0.6 — использование PdfSharp для отображения HTML в PDF.
  7. Быстрый старт | docfx — DocFX для создания сложных документаций в формате PDF.