morpher.ru 8 (499) 647 86 54
nowhere@morpher.ru
 
 
Мой морфер

Генерация документов Word по шаблону из C#

EasyDox.dll – это бесплатная .NET библиотека для генерации вордовских документов (docx) по шаблону. Использовать ее очень просто:

var fieldValues = new Dictionary <string, string> {
    {"№ договора", "123-456/АГ"},
    {"Сторона 1",  "ООО «Ромашка»"},
    {"Сторона 2",  "ЗАО «Тюльпан»"},
    {"Подписант 1", "Иванов И.П."},
    {"Должность 1", "генеральный директор"},
    {"Основание 1", "Устав"},
};

var engine = new Engine ();

engine.Merge ("c:\\template.docx", fieldValues, "c:\\output.docx");

Функция Merge читает указанный файл шаблона и подставляет в него значения полей, заданных параметром fieldValues, и затем сохраняет результат в "c:\output.docx". Например, шаблон:

ДОГОВОР № № договора

Сторона 1 и Сторона 2 заключили настоящий Договор о нижеследующем...

После подстановки значений полей превращается в:

ДОГОВОР № 123-456/АГ

ООО «Ромашка» и ЗАО «Тюльпан» заключили настоящий Договор о нижеследующем...

Кроме простых подстановок библиотека умеет выполнять различные преобразования, такие как склонение по падежам и запись денежных сумм прописью. Например, чтобы просклонять ФИО подписанта в договоре, добавляем в скобках (родительный):

1.1   Организация 1 в лице Должность (родительный) Подписант (родительный), действующего на основании Основание 1 (родительный)...

После подстановок получаем связный текст:

1.1   ООО «Ромашка» в лице генерального директора Иванова И.П., действующего на основании Устава...

Список преобразований

Преобразование Что делает
(родительный) Ставит предшествующую позицию в родительный падеж.
(цифрами и прописью) Преобразует число в запись суммы в рублях цифрами и прописью.

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

Библиотека расширяема и позволяет добавлять собственные преобразования. Набор пользовательских преобразований (функций) передается в конструктор класса Engine.

Поля в колонтитулах (верхних и нижних) пока не обрабатываются.

Как создать шаблон docx

Шаблон – это обычный вордовский документ с расширением docx, в который в нужных местах вставлены поля. Чтобы вставить поле, перейдите на вкладку Вставка (Insert), нажмите Экспресс-блоки (Quick Parts), затем Поле (Field).

Откроется окно. В нем выберите тип поля MergeField, введите название поля и если нужно, преобразование в скобках:

Нажмите OK для вставки поля.

Технические параметры библиотеки

Библиотека собрана под платформу AnyCPU (MSIL). Не требует установки OpenXml SDK. Все классы потокобезопасны.

Скачать

Начать работу с библиотекой проще всего с примера:

Этот пример подставляет в шаблон договора ФИО директора в родительном падеже.

Добавить библиотеку EasyDox.Morpher.dll в имеющийся проект очень просто при помощи менеджера пакетов Nuget:

Пакет EasyDox.Morpher имеет зависимости от пакетов EasyDox и Morpher.API, поэтому при его установке в вашем распоряжении оказываются все нужные библиотеки.

Вам также могут быть интересны исходные коды библиотек:

Возможно, вы захотите что-то дополнить или исправить. Пулл-реквесты приветствуются.

Граф зависимостей



 

Библиотеки

Заметили опечатку? Выделите слово мышкой и нажмите Ctrl-Enter. Система Orphus

© Сергей Слепов, 2003 - 2017. Перепечатка материалов сайта только с разрешения автора.