1

Тема: Экспорт RTF содержания поля в формат html по абзацам и с табуляцией.

Задача: выгрнузить в переменную для дальнейшей вставки в html документ лотусового RTF поля СОДЕРЖАНИЕ.
Важно, чтобы текст был разбит по абзацам, было форматирование, как при табуляции.

Решение:

Set rtitem =  doc.GetFirstItem("СОДЕРЖАНИЕ") '// СОДЕРЖАНИЕ
        
array1(0) = Chr(13)
array1(1) = Chr(9)
array2(0) = "<br/>"
array2(1) = {<span style="padding:0px 10px;"></span>}
sText$ = Replace(rtitem.GetFormattedText(False, 32000),array1,array2)

Поделиться

2

Re: Экспорт RTF содержания поля в формат html по абзацам и с табуляцией.

Вариант с заменой подстрок
chr(10) - переход на новую строку,  chr(13) - возврат каретки , Chr(9) - табулятор

sText$ = rtitem.Text
string1 = Chr(10)+Chr(13) 'заменяем абзац. 
string2 = "<br/>"  ' на перенос
While Instr(1, sText$, string1) '  заменяем абзац на тег.  Есть еще Chr(10)
sText$ = Left(sText$, Instr(1, sText$, string1) - 1) + string2 + Mid(sText$, Instr(1, sText$, string1) + Len(string1))
Wend

Поделиться

3

Re: Экспорт RTF содержания поля в формат html по абзацам и с табуляцией.

Попытка получить выравнивание у каждого абзаца неудачная:

Мы можем только устанавливать стиль и записать текст с этим стилем в поле.

Dim rtpStyle As NotesrichTextParagraphStyle
Set rtpStyle = session.CreateRichTextParagraphStyle
rtpStyle.Alignment = ALIGN_CENTER

А вот у rtRange  получить стиль абзаца - неполучается. Т.к. NotesRichTextStyle не имеет такого свойства как выравнивание.
Смотрим в 
rtRange.Style. -  есть шрифт и прочее.

Call rtRange.SetBegin (rtnav)
flag =  rtnav.FindNextElement()    
Call rtRange.SetEnd (rtnav)
Set rtpStyle = rtRange.TextParagraph.Alignment

Поделиться