Я знаю, что это немного субъективно, но я изучаю следующую ситуацию:
Мне нужно создать несколько документов автоматически из данных в базе данных SQL Server. В базе данных будет приложение MVC3, чтобы разрешить ввод данных и т.д. И (возможно) кнопку "Перейти" для создания документов.
Должна быть какая-то бизнес-логика о том, как эти документы создаются, называются и хранятся (например, "родительские" документы получают одно имя и входят в одну папку, документы "Child" получают вычисленное имя и входят в подпапку.
Документы могут быть PDF или Doc (x) (или даже оба), если вывод может быть в EN-US и AR-QA (RTL-текст)
Я знаю, что существует множество вариантов из SSRS, Crystal Reports, VSTO, "ручной" PDF-код в коде, слияние слов и т.д.... и у нас уже есть инструмент HTML для PDF, если это используется?
Есть ли у кого-нибудь реальный совет о том, как это сделать и каков будет "лучший" (самый прагматичный) подход? Чем меньше "дополнений" мне нужно установить и настроить на сервере, тем лучше - чем быстрее будет развиваться (как всегда!!)
Выводы:
Слияние слов (или VSTO) Просто не предлагает простоту, контроль и гибкость, которые мне нужны - позор. Было бы неплохо определить dotx и иметь возможность передавать в нем данные на индивидуальной основе для создания docx. Единственный способ, которым я мог добиться этого (и, возможно, я ошибаюсь здесь), - это перебрать элементы управления/закладки по имени и заменить значения... messy.
OpenXML Создание документов на основе шаблонов dotx, даже с использованием OpenXML, не так просто, как (IMHO). Вы должны заменить каждый элемент управления содержимым по имени, поэтому обслуживание не является самой простой задачей.
SSRS На первый взгляд это хорошее решение (хотя для этого требуется SQL Enterprise), однако он становится более сложным, если вы хотите динамически создавать папки и документы. Подход, основанный на данных, очень близок к тому, что я хочу.
Winnovative HTML to PDF Convertor * Это инструмент, который у нас уже есть (хотя версия .Net 2.0). Это позволяет мне создавать HTML-страницы и конвертировать их в PDF. Хороший вариант для меня, так как я могу запустить это на веб-сайте MVC3 и передать параметры в контроллеры для создания PDF файлов. Это дает мне намного более тонкий контроль над структурами папок и имен - проблема с этим методом заключается в простое создание страниц правильно. Бонус в том, что он автоматически дает мне "предварительный просмотр"... basicly просто HTML-страницу!