Я работаю над приложением Blazor, в котором интенсивно используются компоненты radzen, и ищу лучший подход или библиотеку для обработки двух очень разных требований к экспорту PDF в одном проекте.
Контекст:
1. Первая страница (сложный и векторный экспорт)
Это родительская страница, содержащая множество подкомпонентов radzen (в основном dataGrids).
-> Ограничения: PDF-файл должен правильно отображать все разделы. Обработка разрывов страниц имеет решающее значение: DataGrids не должны быть обрезаны посередине. Кроме того, текст должен оставаться доступным для выбора, а конечный размер файла должен оставаться небольшим.
2. Вторая страница (визуальная точность HTML/CSS)
На этой странице используется несколько компонентов Radzen, но основная структура (большая сложная таблица) закодирована на чистом HTML/CSS, поскольку предполагается, что она выглядит как физический клапан.
-> Ограничения: экспорт должен быть точным зеркалом веб-страницы. В этом конкретном случае наличие выбираемого текста не является обязательным; подход к DOM в стиле «скриншот» приемлем, если он полностью соответствует дизайну.
Я изучил несколько вариантов (QuestPDF, который кажется идеальным для пункта 1, но требует переписывания всего на C#, или инструменты на основе Chromium, такие как PuppeteerSharp, которые сохраняют CSS, но более тяжелые).
Мой вопрос:
Какую библиотеку (или комбинацию инструментов) вы бы порекомендовали для эффективной обработки этих двух сценариев? Лучше ли придерживаться одного инструмента (например, делать все в QuestPDF или все через Puppeteer) или мне следует использовать разные подходы в зависимости от страницы?