Инструмент для генерации PDF-отчетов по запросу клиента в веб-приложении

Вопрос или проблема

Мне нужен совет… Я много гуглил и сейчас немного потерян. Попытаюсь дать вам всю информацию, сохраняя ее краткой и простой (я надеюсь – и извините, что я не носитель английского):

Что у нас есть на данный момент:

Веб-приложение, начатое примерно 10-15 лет назад на ASP Classic + VB + DOT.NET (да, aspx). Думаю, все, кто создавал этот монстр, сейчас здесь не работают. Поэтому мы медленно мигрируем его и используем новые технологии… мы уничтожили часть на VB и мигрировали в DOT.NET, обновили фреймворк до 4.7.2, ввели RESTFUL веб-сервисы и обновили фронтенд с помощью Angular. О, и мы используем SQL Server и Windows Servers. Им очень нравился Microsoft ^_^

Последнее, но не менее важное: нам нужно печатать много PDF… и мы в настоящее время используем очень СТАРУЮ версию Java + Tomcat + Jasper Report (у нас сейчас около ~150 jrxml).

Есть простые: всего 1 страница с заголовком, некоторыми данными и таблицей + подвал. Другие немного сложнее, и нам нужно печатать много параметров/повторяющихся полей. У нас есть обычные проблемы, такие как номер страницы, удержание некоторых данных вместе на странице, разрывы страниц и т. д. И, честно говоря, Jasper справлялся с задачей.

Но поскольку мы не используем Java в нашем приложении, а версия такая устаревшая… мы хотели бы мигрировать эту “систему печати” на другую – желательно новую – технологию.

Что мы хотим:

Инструмент, который сможет читать нашу БД (в принципе, можно сделать мини-приложение на C#, которое будет читать БД и просто передавать JSON этому инструменту), чтобы создавать и объединять PDF из шаблона, разработанного нами. Может быть, платный, потому что мы просим много:

  • Инструмент должен быть легко интегрируемым с нашим приложением: Так что если нам нужно кодировать: предпочтительный язык C# или HTML + Javascript в Node.JS. Открыты для советов по этому поводу.

  • Абсолютно НЕТ облачного принтера. Я много читал о таких услугах и думаю, что они круты для личного использования, но у нас много конфиденциальных данных, и мы не хотим даже говорить о проблемах с конфиденциальностью.

  • Создание новых шаблонов должно быть быстрым и простым, и самое главное редактирование существующих!! Нам постоянно нужно редактировать существующие… и иногда сложно менять одно и то же в 100 разных шаблонах.

  • Таким образом, из вышесказанного, хорошей функцией могут быть повторно используемые/общие части в нескольких шаблонах.

  • Лучше, если этот инструмент будет иметь “визуальный редактор” (как jasper report) и сможет использоваться программистом с нулевыми навыками. (эта часть не обязательно, кстати).

  • Финальный макет очень строгий и очень важный… Обычно наш клиент предоставляет нам документ в Word, говоря “должно быть так”. Мы пытаемся воспроизвести это, они печатают наш результат на бумаге A4 и говорят: “хорошо, эта строка на 1 см вниз, здесь я хочу это слово жирным, это другое подчеркнуто”. и так далее. Я надеюсь, вы понимаете.

  • Просто чтобы лучше объяснить весь процесс: Пользователь нажимает кнопку на нашем клиенте “Печать PDF” -> Эта кнопка вызывает API сервера (на самом деле на Java + Tomcat, но мы хотели бы сделать это на C# или Node.js), который обращается к БД, получает все параметрические данные, помещает их в шаблон (уже разработанный, не генерируемый в реальном времени!), сохраняет файл в нашей файловой системе и возвращает его клиенту за пару секунд.

Краткая заметка: Я играл с сервером Node.js, вызываемым из нашего REST на C# и шаблонами в HTML с генератором HTML в PDF. Это выглядит неплохо, но единственная проблема здесь – также поговорив с моими коллегами – в том, что, исходя из визуального редактора, есть слишком много “ручной работы”, чтобы написать и поддерживать HTML шаблоны!

Что вы думаете? Что использует мир для отчетности в PDF? Спасибо!

Syncfusion Essential DocIO и Syncfusion Essential PDF могут использоваться для генерации PDF отчетов на основе документов Word в веб-приложениях с бэкендом .NET/Core.

Живой пример генерации документа Word на основе шаблона.

Живой пример конвертации документа Word в PDF.

Шаблон Word в отчет PDF

Весь продукт доступен бесплатно через программу лицензии для сообщества, если вы соответствуете требованиям (до 1 миллиона долларов США в доходах). Лицензия для сообщества – это полный продукт без ограничений.

Примечание: Я работаю в Syncfusion.

Ответ или решение

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

1. Интеграция с .NET

Syncfusion предлагает библиотеку Essential PDF, которая позволяет легко интегрировать функционал генерации PDF отчетов в ваше приложение на основе .NET. Вы уже на правильном пути, перейдя на .NET Core и разрабатывая REST API, так что использование этого инструмента будет логичным шагом в вашем проекте.

2. Поддержка шаблонов Word

С помощью Syncfusion Essential DocIO вы сможете создавать PDF отчеты на основе заранее подготовленных шаблонов Word, что соответствует вашим требованиям. Можно разрабатывать и редактировать шаблоны в Word, а затем использовать их для генерации PDF с помощью кода на C#. Это значительно упростит процесс работы с документами.

3. Работа с данными

Библиотека позволяет легко подставлять данные из вашей базы данных в шаблоны. Вы сможете создать небольшой сервис на C#, который будет извлекать данные из SQL Server, затем подставлять их в шаблон и генерировать PDF. Этот процесс можно запустить по нажатию кнопки в вашем приложении.

4. Шаблоны и редактирование

Одной из сильных сторон Syncfusion является возможность работы с шаблонами. Вы можете создавать и использовать переиспользуемые части в разных шаблонах. Это идеально подходит для ваших нужд, где вам необходимо часто вносить изменения в шаблоны.

5. Визуальный редактор

Хотя у Syncfusion нет полностью визуального редактора, вы можете использовать Word для создания и редактирования шаблонов. Это должно упростить работу для программистов с нулевыми навыками, поскольку работа в Word может быть более интуитивно понятной, чем работа с HTML и CSS.

6. Клиентская и серверная стороны

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

7. Лицензирование

Syncfusion предлагает бесплатную лицензию для малых компаний (с годовым оборотом менее 1 миллиона долларов), что делает его доступным для стартапов и небольших компаний. Это позволяет вам использовать полную версию продукта без ограничений.

Заключение

С учетом всех этих факторов, Syncfusion может стать отличным решением для ваших задач по генерации PDF документов. Он предлагает функциональность, необходимую для создания сложных отчетов, удобен в интеграции и предоставляет возможность работы с уже существующими ресурсами. Я рекомендую вам провести небольшое исследование и протестировать библиотеку, чтобы убедиться, что она ответит всем вашим требованиям.

Оцените материал
Добавить комментарий

Капча загружается...