![]() |
|
Модераторы: mihanik |
![]()
|
|
| strangerw |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 26.5.2010 Репутация: нет Всего: нет |
Всем привет!
Стоит задача генерировать документацию (конечные файлы достаточно большие и сложные). Будет много разных документов одинаковой структуры. Некоторые куски текста будут одинаковые во всех документах. Но вот данные, которыми заполняются таблицы в документах, а также некоторый текст внутри отдельных глав будет отличаться. Генерация может быть как в doc, так и в rtf формате. Соответственно, вопрос: подскажите, пожалуйста, как лучше всего генерировать одинаковые по структуре, но разные по данным документы? У меня есть кое-какие соображения. Первое, что приходит в голову — составить шаблон документа, в котором вместо динамических данных — макросы. Генератор документов получает на вход xml-документ с данными, затем открывает doc-файл, идет по нему, находит макрос, и вместо него подставляет данные из xml-файла. Генератор использует COM-технологию для сканирования объектов. Например: Word-документ шаблона:
xml, который передается: автор
В результате генерации мы должны получить:
В результате разных xml-ей мы и получим одинаковые по структуре, но разные по данным документы, как и нужно. Что не нравится в этом подходе: нужно писать парсер на COM, который будет ходить по doc-шаблону, разбирать макросы, понимать, где циклы начинаются, где заканчиваются — сложно это... Что хорошо: есть визуальный шаблон, и пользователь сразу видит, как примерно будет выглядеть конечный документ. Второй подход: использовать обычную xslt-трансформацию, где куски отформатированного текста забиты прям в xsl-шаблон. Огромный недостаток здесь — xsl очень ненаглядный, что недопустимо, так как есть требование, чтобы некоторые пользователи могли сами править шаблоны. Учить xsl-преобразованию для этого их недопустимо! Может, есть более простое и гибкое решешие генерации одинаковых по структуре документов, чем первое решение, предложенное мной? |
||||||
|
|||||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |