Вопрос по c#, sql-server-2008 – Как создавать документы (docx или pdf) из SQL Server?
Я знаю, что это немного субъективно, но я смотрю на следующую ситуацию:
Мне нужно автоматически создать ряд документов из данных в базе данных SQL Server. В базе данных будет размещено приложение MVC3, позволяющее вводить данные и т. Д. И (возможно) «Перейти». кнопка для производства документов.
Должна существовать некоторая бизнес-логика в отношении того, как эти документы создаются, именуются и хранятся (например, «родительские» документы получают одно имя и помещаются в одну папку, «дочерние» документы получают вычисленное имя и помещаются в подпапку).
Документы могут быть в формате PDF или Doc (x) (или даже оба), если выходные данные могут быть в формате EN-US и AR-QA (текст RTL)
Я знаю, что есть несколько вариантов из SSRS, Crystal Reports, VSTO, & quot; ручной & quot; PDF в коде, слияние по почте и т. Д. ... и у нас уже есть инструмент HTML в PDF, если он нужен?
Есть ли у кого-нибудь реальный совет о том, как это сделать и что такое «лучше всего»? (самый прагматичный) подход был бы? Меньше «дополнений» Мне нужно установить и настроить на сервере, тем лучше - чем быстрее разработка, тем лучше (как всегда !!)
Выводы на данный момент:
Word Mail Merge (or VSTO) Просто не предлагает той простоты, контроля и гибкости, которые мне требуются - действительно позор. Было бы неплохо определить dotx и иметь возможность передавать ему данные на индивидуальной основе для генерации docx. Единственный способ, которым я мог добиться этого (и я могу ошибаться здесь), - циклически проходить по элементам управления / закладкам по имени и заменять значения ... грязно.
OpenXML Создание документов на основе шаблонов dotx, даже с использованием OpenXML, не так просто, как должно быть. Вы должны заменить каждый элемент управления содержимым по имени, поэтому обслуживание не самая простая задача.
SSRS На первый взгляд, это хорошее решение (хотя для этого требуется SQL Enterprise), однако оно усложняется, если вы хотите динамически создавать папки и документы. Тем не менее, управляемая данными подписка очень близка к тому, что я хочу.
Winnovative HTML to PDF Convertor* Это инструмент, который у нас уже есть (хотя версия .Net 2.0). Это позволяет мне генерировать HTML-страницы и конвертировать их в PDF. Хороший вариант для меня, так как я могу запустить это на веб-сайте MVC3 и передать параметры в контроллеры для генерации PDF-файлов. Это дает мне более детальный контроль над папками и структурами именования - проблема с этим методом заключается в том, чтобы просто генерировать страницы правильным образом. Бонус в том, что он автоматически дает мне «предварительный просмотр» ... в основном только HTML-страницу!
T могут быть сильным инструментом для форматирования вашего контента. Эта технология не позволит вам создавать PDF-файлы.
Быстрая разработка без использования сторонних компонентов будет затруднена. Но если вы решите использовать сервер отчетов, обязательно проверьте BIRT или Jasper.
Для создания PDF-файлов я использовал устаревший Report.net. Он имеет много портов для разных языков и все еще достаточен для создания простых PDF-файлов.Report.net на sourceforge
только если у вас все в порядке с настройкой на сервере и существует определенная необходимость в расписании отчетов и сложных отчетах.
Если у вас есть код для ручной генерации PDF / docx, я бы предложил продолжить. Надеюсь, сложность его кода не имеет значения для вас.
Я использовал оба в отдельных сценариях. Мы использовали классы Excel и объекты из .NET для минимальной отчетности из веб-приложения.
Но пошел на сложную схему отчетности для системы, которая требовала, чтобы тысячи отчетов были созданы в запланированном порядке и доставлены выбранному набору людей.
что сам SQL Server может производить PDF-файлы. Как вы упомянули, вы можете установить экземпляр SSRS и создать отчет, который предоставит вам необходимую информацию. Затем вы можете создать подписку, чтобы доставить свой отчет туда, куда вы хотите, когда вы хотите.
Вот пример простой подписки: