Я не уверен, что является причиной ошибки 32 КБ, но я знаю, что существует множество ограничений порядка 32 КБ или 64 КБ в Lotus Notes, поэтому, возможно, вы столкнулись с одним из них. Я не могу себе представить, что бы добавить дополнительные CR / LFs. Возможно, вы могли бы попробовать использовать метод GetFormattedText в классе NotesRichTextItem и посмотреть, будет ли он лучше?
Это более сложно, но вы также можете использовать класс NotesRichTextNavigator для перебора всех абзацев в заметке, выводя их по одному за раз. Распределение выходных данных таким образом может устранить проблему CR / LF.
Наконец, я всегда предлагаю Midas LSX для работы с форматированным текстом в Lotus Notes. Они продают надстройку, которая дает вам гораздо больший контроль над полями расширенного текста.
Что касается лучших практик, то, когда я читаю ваш код, мне приходит в голову конструкция цикла. Более эффективно получить первый документ в виде, обработать его, а затем получить следующий документ и проверить, равен ли он Ничему. Это заставляет цикл проходить через представление в порядке индекса и устраняет необходимость поиска в индексе, чтобы каждый раз находить N-й документ. Это также спасает вас от ведения счетчика. Суть заключается в следующем:
Set doc = curview.GetFirstDocument()
While Not (doc Is Nothing)
'Do processing here...
Set doc = curview.GetNextDocument(doc)
Wend