Хранить метаданные в атрибутах RTF-файлов

Используя Двери 9.6, я хочу добиться следующего:

  1. Сохранять форматированный текст в атрибуте Doors, используя DXL (o."Object Text" = richText("<RTF-STRING>")) где <RTF-STRING> содержит метаданные, не показанные пользователю
  2. (Пользователь изменяет атрибут расширенного текста в Doors, например, простое изменение текста / формата, добавление и удаление объектов OLE и т. Д.)
  3. Извлеките содержимое атрибута Doors с помощью DXL и обработайте неизмененные метаданные, которые были сохранены в атрибуте на шаге 1

Что я пробовал: когда простая строка RTF

{\rtf1\ansi\ansicpg936\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Tahoma;}}
{\*\generator Riched20 10.0.14393}
{\*\userprops {\propname MYPROP}\proptype30{\staticval MYPROPVAL}}\viewkind4\uc1 
\pard\sa8\f0\fs20\lang1031 Hi \b there\b0 !\par
}

хранится в атрибуте форматированного текста и не изменяется в Doors, его можно получить (richTextWithOle(o."Object Text")) включая метаданные (userprops). Но если это изменилось в Двери, userprops удалены.

Кроме того userpropsЯ тоже пробовал comment, doccomm (комментарий к документу) и objname (потому что метаданные об объектах OLE). Они все удалены.

Интересно, что если исходная строка RTF содержит объект OLE, метаданные удаляются даже до изменения атрибута в Doors. Кроме того, метаданные не содержатся, если exportAttributeToFile(o."Object Text", "<PATH>") используется для извлечения содержимого атрибута Doors (также до изменения атрибута в Doors).

Есть ли способ повлиять на действия Doors, когда пользователь Doors изменяет атрибуты расширенного текста? Например, можно ли изменить поведение "генератора Riched20"? Или есть совершенно другой подход?

Заранее спасибо!

0 ответов

Другие вопросы по тегам