Воскресенье, 12.05.2024, 00:43
Приветствую Вас Гость | RSS

Официальный сайт DKbelRoma-SoFT

Главная | Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Программирование » WEB - программирование » Как конвертировать RTF в HTML (HTML)
Как конвертировать RTF в HTML
dkbelroma-softДата: Среда, 29.10.2008, 22:02 | Сообщение # 1
Добрый АдминкО
Группа: Администраторы
Сообщений: 55556
Репутация: 100
Статус: Offline
Как конвертировать RTF в HTML

Когда-то давно я хотел сделать в своём текстовом редакторе функцию для конвертации из RTF в HTML, после долгих часов проведённых в Интернете я нашёл пример, но результат меня разочаровал. Та прога просто копировала текст и вставляла его между заголовками

Code
<HTML><BODY></BODY></HTML>

При этом всё форматирование терялось. И тогда я задумался над воросом: "А как сохранить форматирование?" Ответ напрашивался сам собой, необходимо создать функцию или несколько функций, которые бы анализировали форматирование текста и генерировали бы код для такого же форматировиния HTML - Документа.
Сейчас я выложу код этих функций.

ПРЕДУПРЕЖДЕНИЕ: Данный код не универсальный т.е. могут быть ошибки при переводе.

Code

Public Function RTFTOHTML(ObjectRTF As RichTextBox) As String
Dim i As Integer
Dim fcolor As String
Dim fName As String
Dim fSize As String
i = 1
Do Until i = Len(ObjectRTF.Text) + 1
If Asc(Mid(ObjectRTF.Text, i, 1)) = 13 Then RTFTOHTML = RTFTOHTML & "< BR>"
If i = 1 Then
ObjectRTF.SelStart = 1
ObjectRTF.SelLength = 0
RTFTOHTML = RTFTOHTML & "< FONT " & " FACE=" & Chr(34) & _
         ObjectRTF.SelFontName & Chr(34) & " Color=" & _
         TableConvertPallete(ObjectRTF.SelColor) & " Size=" _
         & ObjectRTF.SelFontSize / 3 & ">" & Mid(ObjectRTF.Text, 1, i)
fcolor = ObjectRTF.SelColor
fSize = ObjectRTF.SelFontSize
fName = ObjectRTF.SelFontName
i = i + 1
End If
'====================================================================================
ObjectRTF.SelStart = i
ObjectRTF.SelLength = 0
If Not (fcolor = ObjectRTF.SelColor) Or Not _
        (fSize = ObjectRTF.SelFontSize) Or Not _
        (fName = ObjectRTF.SelFontName) _
        Then 'если произошли изменения форматирования вывести
RTFTOHTML = RTFTOHTML & " < FONT " & " FACE=" & Chr(34) & _
         ObjectRTF.SelFontName & Chr(34) & " Color=" & _
         TableConvertPallete(ObjectRTF.SelColor) & " Size=" & _
         ObjectRTF.SelFontSize / 3 & ">" & Mid(ObjectRTF.Text, i, 1)
'-=================================================================================
Else 'Если изменений не произошло добавить символ к остальным
RTFTOHTML = RTFTOHTML & Mid(ObjectRTF.Text, i, 1)
End If
fcolor = ObjectRTF.SelColor
fSize = ObjectRTF.SelFontSize
fName = ObjectRTF.SelFontName
i = i + 1
Loop
End Function
Public Function TableConvertPallete(ColorNumber As String) As String
If ColorNumber = "255" Then TableConvertPallete = Chr(34) & "Red" & Chr(34)
If ColorNumber = "16711680" Then TableConvertPallete = Chr(34) & "Blue" & Chr(34)
If ColorNumber = "65535" Then TableConvertPallete = Chr(34) & "Yellow" & Chr(34)
If ColorNumber = "65280" Then TableConvertPallete = Chr(34) & "Green" & Chr(34)
If ColorNumber = "16777215" Then TableConvertPallete = Chr(34) & "White" & Chr(34)
If ColorNumber = "986895" Then TableConvertPallete = Chr(34) & "Black" & Chr(34)
If ColorNumber = "16711935" Then TableConvertPallete = "FF00CC"
If ColorNumber = "16776960" Then TableConvertPallete = "00FFFF"
If ColorNumber = "4227327" Then TableConvertPallete = "FF9900"
End Function

P.S. Подобный алгоритм я использовал для написания программы для извлечения стилей из RTF - документа


Не важно, откуда ты. Важно - где ты...
 
Форум » Программирование » WEB - программирование » Как конвертировать RTF в HTML (HTML)
  • Страница 1 из 1
  • 1
Поиск: