Lotus Notes: элемент RichText
Хорошо, вот сделка. Я использую C# с Domino API. У меня есть некоторые расширенные текстовые данные, которые я хочу вставить в поле расширенного текста заметок лотоса.
- NotesDocument.ReplaceItemValue просто вставляет текст без форматирования.
- NotesDocument.CreateRichTextItem предоставляет мне объект NotesRichTextItem, который я могу использовать для создания RichText вручную (такие методы, как AddNewLine() AddPageBreak() и т. Д.). Но у него нет какого-либо метода Parse для получения уже отформатированных данных форматированного текста, что мне и нужно. Я хочу, чтобы мои пользователи помещали туда все, что они хотят, поэтому использование вышеупомянутых методов для меня бесполезно.
- Объект NotesRichTextItem.Values выдает ошибку, когда я пытаюсь добавить строку в формате расширенного текста.
Итак, что мне делать? Я думаю, что я в значительной степени облажался, но надеюсь, что какой-нибудь гений найдет решение. Любая помощь высоко ценится.
Спасибо, парни!
PS - вставка примечаний форматированных текстовых данных или данных HTML будет в порядке. Любой из них будет так же хорош, если он отображает в документе правильный форматированный текст, а не неформатированную строку.
3 ответа
Ну, я нашел ответ - это не красиво, но работает! Что я сделал
- Используйте экспортер DXL, чтобы получить XML
- отредактируйте его (добавив форматированный текст), а затем
- Удалить оригинальный документ
- Используйте импортер DXL для импорта отредактированного документа
Вуаля!:-D
В любом случае, спасибо за такой быстрый ответ:-)
Не зная деталей вашего заявления, я не уверен, что этого будет достаточно. Но вы можете хранить HTML как текст в поле расширенного текста Notes, а затем в приложении Notes отображать это поле как "сквозной HTML". Недостатком является то, что вы не сможете выполнять последующее редактирование из клиента Notes. Кроме того, движок рендеринга HTML в клиенте Notes довольно слабый, поэтому вы не сможете достичь почти полной точности.
Если это не отвечает вашим потребностям, вы всегда можете использовать API Notes C (а не COM/API, который вы используете). API более низкого уровня позволяет вставлять что-либо в поле расширенного текста, но вам нужно будет написать анализатор / преобразователь самостоятельно. Поиск записей составных данных (CD).
Вот ссылка на сайт API: http://www14.software.ibm.com/webapp/download/nochargesearch.jsp?k=ALL&status=Active&q=Lotus+%22C+API%22
Разве API не предоставляет вам доступ к различным классам форматированного текста? Возможно, они могли бы помочь? Например, есть классы для NotesRichTextStyle
, NotesRichTextNavigator
, NotesRichTextSection
, NotesRichText
, и так далее и тому подобное.