Многостоловое программное слияние с файлом документа ODF - PullRequest
0 голосов
/ 02 февраля 2010

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

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

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

1 Ответ

0 голосов
/ 19 февраля 2010

Работая над этой проблемой, я нашел 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 & begin ~ ~~ tablename & end ~, в которых текст между начальным и конечным токенами будет печататься только в том случае, если в этом имени таблицы есть записи.мышления.Дуг

...