2010-02-02 3 views
0

Я создал собственное слияние XML с Microsoft Word 2007 с использованием формата docx, позволяя пользователю получать доступ к полям, выраженным в схеме, и включать их в Word DocX. Затем я открыл файл, выполнил поиск/замену по всему документу, закрыл его и полностью открыл в Word. С потерей патентного костюма новые пользователи нашего программного обеспечения не смогут создавать документы, потому что пользовательская XML-схема отключена.Многопользовательский программный слияние с файлом документа ODF

Я собираюсь сделать то же самое и/или подобное в OpenOffice, но нахождение примеров в Интернете чего-то близкого меня уклонилось. Мне нужна информация о том, как я могу поместить «теги» в документ, который я могу найти и заменить, или получить доступ к схеме из Open Office Writer. Обратите внимание, что ссылка на обычное слияние почты, которая предполагает файл с плоскими слияниями, не будет работать в моем случае, потому что у меня есть несколько таблиц/от одного до многих отношений и т. Д.

Любые ссылки или идеи будут оценены.

ответ

0

При работе над этой проблемой я придумал 3 потенциальных решения.

1) Используйте слияние данных/полей. Это будет включать в себя создание нескольких источников данных, по одному для каждой таблицы, затем за кулисами и использование XSLT или более грубой силы для поиска/замены.
2) Используйте XSLT непосредственно со стилями в документе. Я хотел бы рассказать вам, что я придумал это сам, но это была/была статья на веб-сайте IBM http://www.ibm.com/developerworks/edu/x-dw-x-xsltopenoff.html. Да, вам нужно зарегистрироваться, но это интересно читать. 3) Поместите жетоны в документ и используйте маркеры для поиска/замены. Это метод, который я выбрал для использования.

Я открою документ с помощью утилиты unzip в своей программе, извлекая файл content.xml, модифицируя content.xml на основе токенов, закрывая его и запуская в Open Office Write.

Причина в том, что мои пользователи должны иметь доступ к любому полю из любой таблицы, на которую они разрешены, но они не будут, как правило, удобными с таблицами данных и/или сложные таблицы стилей. Позволив им зайти в ~~ tablename.fieldname ~, где бы они ни захотели, я даю им максимальную гибкость с минимальными накладными расходами. Кроме того, я могу написать утилиту, которая поможет им собрать документ, чтобы они могли перетаскивать документ в документ ... по крайней мере, это текущий план.

Для более опытных пользователей, я буду реализовывать некоторые дополнительные возможности, как в ~~ имя_таблица & начать ~ ~~ имя_таблицы & конца ~ , где текст между начальным и конечной лексемой будет печатать только если есть записи в этом tablename.

Еще рано, но хотелось поделиться своим мнением. Doug