Сокращенный вариант Тип приложения - надстройка над картографическим сервисом. Графический гео-редактор. Применение: инструмент планирования при спасательных операциях. Проект некоммерческий, ориентирован на социальную задачу. Платформа: ГИС ...
C# библиотека для сборки документа Word
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Цель проекта - создать C# библиотеку, которая будет частью приложения для помощи преподавателям в создании тестов для студентов. Допустим, у преподавателя есть документ с 200 вопросами для тестов. Преподаватель хочет сделать тест из 40 вопросов. Задача библиотеки - автоматизировать копирование и вставку этих вопросов из .docx файла, содержащего все вопросы, в .docx файл для конкретного теста из 40 вопросов.
Оригинальный .docx документ размечен так:
***begin:question1
content (mostly text, but including images, text boxes, drawings, equations, etc.)
***end:question1
***begin:question2
more content
***end:question2
и т.д.
Библиотека будет использована в программе для сборки .docx документов. Работа с библиотекой должна выглядеть примерно так:
string[] partsToInclude = new string[] { "titlepage", "instructions", "question1", "question3", "question5", "footer" };
DocumentAssembler myDoc = new DocumentAssembler(@"c:\master.docx");
myDoc.CreateSubDocument(partsToInclude, @"c:\newdocument.docx");
... для создания newdocument.docx, который содержит части master.docx между ***begin:xxx и ***end:xxx заголовками, указанными в массиве partsToInclude.
Мы можем немного изменять формат разметки документа, например, если будет нужно, все ***begin и ***end разделители могут быть в каком-то определенном стиле.
Важно, чтобы класс DocumentAssembler копировал ВСЕ содержимое исходного документа, включая картинки, рисунки, формулы, поля для ввода, и т.п. Все форматирование, разрывы страниц и т.п. должны быть сохранены. Свойства нового документа (отступы, заголовки, колонтитулы и т.п.) должны быть такими же, как в исходном документе.
Кроме основного копирование, желательно иметь еще одну вещь в классе DocumentAssembler. Может быть 2 типа содержимого для копирования из оригинального документа в новый - части, обозначенные как "question" и части, обозначенные по-другому (титульный лист, инструкции, и т.п.)
Желательно, чтобы DocumentAssembler отслеживал "текущий номер вопроса", и заменял текст "###" внутри блока содержимого на этот номер вопроса. Нумерация вопросов начинается с 1 и увеличивается после каждого блока "question".
То есть, для примера, если в оригинальном документе есть блок:
***begin:question78
###. What color is the sky?
A. red B. blue C. green D. purple
***end:question78
и создан тест, использующий блоки "titlepage", "question60", "question78", то ### в вопросе 78 будет заменено на строку "2", так как это второй блок в результирующем документе, имя которого начинается с "question".
Приемлимо (и желательно) использовать готовые библиотеки для этого проекта, например Open XML SDK от Microsoft.
Пример файла с вопросами - в приложении.
Заявки фрилансеров
Похожие заказы
- $1000Прикладное ПО16 заявокЗакрыт9 лет назад
Нужна программа для учета рабочего времени. Состоит из полноэкранного модуля с кнопками для работников, которые с помощью сенсорного монитора отмечают приход и уход с работы. Программа обрабатывает и выдает отчет. Примерно как выглядит отчет и ...
Прикладное ПО17 заявокЗакрыт12 лет назадНаписать приложение для ПК для бесплатной отправки смс с сайта оператора
Прикладное ПО1 исполнительЗавершен12 лет назадДизайн и его прототип в HTML: https://disk.yandex.ru/public/?hash=doFh2UiyiHD%2BWHFAgfCI9MlGEaaQevbq7WgCrtAwwso%3D Необходимо создать работающий прототип интерфейса клиентского приложения на базе библиотеки gtk2 согласно указанному дизайну. В результате должно быть предоставлено работающее приложение, ...
Прикладное ПО1 заявкаЗакрыт12 лет назадНужен макрос, который 1 позволял выбрат столбец 2 находил в столбце ячейки с данным слово 3 удалял на мой выбо либо всю строку либо только содержание ячейки ...
Прикладное ПО6 заявокЗакрыт12 лет назадЕсть директория с папками разного уровня вложенности. В них файлы, среди которых могут быть с расширением htm, html, txt. В программе или скрипте конфиг, в котором можно указать конечное местоположение обработанной директории, ключевое слово или ...
Прикладное ПО12 заявокЗакрыт12 лет назад- $50
Доброго времени суток! требуется переделать не сложную программу, саму программу дам, нужно изменить «под меня» на данный момент программа есть в паблике, требуется доработка со временем не спешу, требований к проге не много! ...
Прикладное ПО5 заявокЗакрыт12 лет назад Добрый день. Есть не много не стандартная задача. Необходима программа которая могла бы "преобразовывать" звуки получаемые с микрофонов ( минимум 4 микрофона) в эквалайзер на монитор. Каждая дорожка эквалайзера должна соответствовать 1 микрофону. ...
Прикладное ПО2 заявкиЗакрыт12 лет назадНужна программа для работы с SSH. Создание туннелей и т.д. Только спецы. Оставляйте контакт icq мне в пм...
Прикладное ПОнет заявокЗакрыт12 лет назадПриветствую! Ищу человека, с опытом разработки под Mac OS. Очень приветствуется знание в области системных служб, нужно будет написать утилиту, связанную с DNS службой. Пишите в ЛС.
Прикладное ПО1 заявкаЗакрыт12 лет назад