Click here to Skip to main content
Click here to Skip to main content

Using a VB.NET 2005 Class to Convert RichText to HTML

, 2 Nov 2006 CPOL
Rate this:
Please Sign up or sign in to vote.
A quick way to convert RichText to HTML.

A window showing a Rich Editor and the resutling HTML code


This code was written to solve the problem of having RichText data needing to be displayed in HTML, both in HTML reports and in ASP.NET web pages.

Using the code

Use of the code is exceptionally simple. Simply create a new instance of the class and then use the properties to first pass in the RichText to parse and then use the html property to get the resulting HTML. (The code file for the class is attached to this article).

''Assume you have a RichTextBox on your 
''form named rtbFoo and a button named btnBar

  Private Sub btnBar_Click(ByVal sender as object, _
          e as System.EventArgs) Handles btnBar.Click
    dim r2h as new RTFtoHTML
    r2h.rtf = rtbFoo.rtf
  End Sub


  • Initial release - 11/02/2006.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

George H. Slaterpryce III
United States United States
Developing software since 1995, starting out with Borland Turbo C++ 3 & Motorolla Assembly.
Eventually learning several different languages such as
Pascal/Delphi,Basic, Visual Basic,FoxPro, ASP, PHP, and Perl.
Currently using the .net framework for most development task.
Hobbies include underwater robotics, and electronics.
George's current language of choice is C#.

Comments and Discussions

QuestionConversion of text in textbox to HTML file PinmemberAdarshPatil25-Nov-10 20:35 
GeneralUnderline Pinmemberkheonline6-Oct-10 5:30 
QuestionCombined with RTBExVB Pinmemberbigbro_19858-Aug-10 21:29 
AnswerRe: Combined with RTBExVB PinmemberGeorge H. Slaterpryce III3-Sep-10 10:57 
AnswerRe: Combined with RTBExVB PinmemberMember 1128637821-Dec-14 3:57 
GeneralCode for changing the Font and the FontSize with ListBox Pinmembervb_newsbie12-Jul-10 22:14 
GeneralRe: Code for changing the Font and the FontSize with ListBox Pinmembervb_newsbie14-Jul-10 1:16 
GeneralHi George Slaterpryce III PinmemberCurtis Underwood17-May-10 7:38 
I Really Like your code.
   I have made some modifications to your code as per your permissions granted. These Modifications include adding spaces so the converted HTML is spaced exactly like the RTF is spaced. I discovered that after converting and placing in a HTML document it was all Left aligned. I also found that when copying the RTF from VB IDE that if the VB code referenced HTML formatting that it used the references to HTML. So I made a modification to prevent this. I am at present looking into a way to change the embedded objects to their respective Image or Thumb nails. The only way I could get this to post the code correctly Was to unchecked "Use HTML in post" and unchecked Encode. Because it caused the HTML code " " to change to a " ". Wrapping it did nothing to help.
But here is the code the way it is modified starting from Alignment Which was not modified.
                  If intPos = 0 Then
                        strReturn &= "<p style=""text-align:" & _rtfSource.SelectionAlignment.ToString & """>" '
                        altCurrent = _rtfSource.SelectionAlignment
                        If _rtfSource.SelectionAlignment <> altCurrent Then
                              strReturn &= "</p>"
                              strReturn &= "<p style=""text-align:" & _rtfSource.SelectionAlignment.ToString & """>"
                              altCurrent = _rtfSource.SelectionAlignment
                        End If
                  End If
                  '"   (1) Modified to allow spaces and Html control syntex to be displayed(Curtis Underwood,April/29/2010 )
                  If intPos > 1 Then
                        If _rtfSource.Text.Substring(intPos, 1) = CStr(Chr(60)) And _rtfSource.Text.Substring(intPos - 1, 1) = CStr(Chr(34)) Then
                              strReturn &= "&lt;"
                              intPos += 1
                              Do Until _rtfSource.Text.Substring(intPos, 1) = CStr(Chr(34)) Or _rtfSource.Text.Substring(intPos, 1) = CStr(Chr(62))
                                    strReturn &= _rtfSource.Text.Substring(intPos, 1)
                                    intPos += 1
                        End If
                  ElseIf intPos < _rtfSource.Text.Length Then
                        If _rtfSource.Text.Substring(intPos, 1) = CStr(Chr(62)) And _rtfSource.Text.Substring(intPos + 1, 1) = CStr(Chr(34)) Then
                              strReturn &= "&gt;"
                        End If
                  End If
                  If _rtfSource.Text.Substring(intPos, 1) = " " Then
                        strReturn &= "&nbsp;"
                        strReturn &= _rtfSource.Text.Substring(intPos, 1)
                  End If
GeneralRe: Hi George Slaterpryce III PinmemberGeorge H. Slaterpryce III3-Sep-10 10:58 
GeneralNice Article Pinmemberjayeshshah8-Dec-09 17:55 
GeneralBugs Pinmemberhristo14220-Apr-09 22:55 
GeneralRe: Bugs PinmemberSorwen30-Apr-09 7:59 
GeneralRe: Bugs Pinmemberjoseph_man6-May-09 5:02 
GeneralRe: Bugs PinmemberSorwen5-Jun-09 18:03 
GeneralRe: Bugs PinmemberDjBepy15-Jul-09 3:22 
GeneralRe: Bugs Pinmemberwouterdebo3-Feb-10 23:10 
GeneralRe: Bugs PinmemberSorwen4-Feb-10 12:30 
AnswerRe: Bugs Pinmemberamitk86-Dec-10 11:42 
Generalhi Pinmembermwau26-Feb-09 0:01 
GeneralNot saving any image Pinmembersuis11-Feb-09 7:40 
GeneralHey.. good one .. PinmemberAbhishek sur27-Aug-08 23:00 
Generalsaving the converted file Pinmemberquioske9-May-08 4:57 
GeneralNice PinmemberGlimmerMan6-Aug-07 4:09 
Generalescape characters Pinmembergary73-Aug-07 11:52 
GeneralUnderline Pinmemberfrederic.robert29-May-07 6:02 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.150129.1 | Last Updated 2 Nov 2006
Article Copyright 2006 by George H. Slaterpryce III
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid