Click here to Skip to main content
12,547,806 members (32,473 online)
Click here to Skip to main content
Add your own
alternative version


76 bookmarked

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#.

You may also be interested in...


Comments and Discussions

QuestionConversion of text in textbox to HTML file Pin
AdarshPatil25-Nov-10 19:35
memberAdarshPatil25-Nov-10 19:35 
GeneralUnderline Pin
kheonline6-Oct-10 4:30
memberkheonline6-Oct-10 4:30 
QuestionCombined with RTBExVB Pin
bigbro_19858-Aug-10 20:29
memberbigbro_19858-Aug-10 20:29 
AnswerRe: Combined with RTBExVB Pin
George H. Slaterpryce III3-Sep-10 9:57
memberGeorge H. Slaterpryce III3-Sep-10 9:57 
AnswerRe: Combined with RTBExVB Pin
Member 1128637821-Dec-14 2:57
memberMember 1128637821-Dec-14 2:57 
GeneralCode for changing the Font and the FontSize with ListBox Pin
vb_newsbie12-Jul-10 21:14
membervb_newsbie12-Jul-10 21:14 
GeneralRe: Code for changing the Font and the FontSize with ListBox Pin
vb_newsbie14-Jul-10 0:16
membervb_newsbie14-Jul-10 0:16 
GeneralHi George Slaterpryce III Pin
Curtis Underwood17-May-10 6:38
memberCurtis Underwood17-May-10 6: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 Pin
George H. Slaterpryce III3-Sep-10 9:58
memberGeorge H. Slaterpryce III3-Sep-10 9:58 
GeneralNice Article Pin
jayeshshah8-Dec-09 16:55
memberjayeshshah8-Dec-09 16:55 
GeneralBugs Pin
hristo14220-Apr-09 21:55
memberhristo14220-Apr-09 21:55 
GeneralRe: Bugs Pin
Sorwen30-Apr-09 6:59
memberSorwen30-Apr-09 6:59 
GeneralRe: Bugs Pin
joseph_man6-May-09 4:02
memberjoseph_man6-May-09 4:02 
GeneralRe: Bugs Pin
Sorwen5-Jun-09 17:03
memberSorwen5-Jun-09 17:03 
GeneralRe: Bugs Pin
DjBepy15-Jul-09 2:22
memberDjBepy15-Jul-09 2:22 
GeneralRe: Bugs Pin
wouterdebo3-Feb-10 22:10
memberwouterdebo3-Feb-10 22:10 
GeneralRe: Bugs Pin
Sorwen4-Feb-10 11:30
memberSorwen4-Feb-10 11:30 
AnswerRe: Bugs Pin
amitk86-Dec-10 10:42
memberamitk86-Dec-10 10:42 
Generalhi Pin
mwau25-Feb-09 23:01
membermwau25-Feb-09 23:01 
GeneralNot saving any image Pin
suis11-Feb-09 6:40
membersuis11-Feb-09 6:40 
GeneralHey.. good one .. Pin
Abhishek sur27-Aug-08 22:00
memberAbhishek sur27-Aug-08 22:00 
Generalsaving the converted file Pin
quioske9-May-08 3:57
memberquioske9-May-08 3:57 
GeneralNice Pin
GlimmerMan6-Aug-07 3:09
memberGlimmerMan6-Aug-07 3:09 
Generalescape characters Pin
gary73-Aug-07 10:52
membergary73-Aug-07 10:52 
GeneralUnderline Pin
frederic.robert29-May-07 5:02
memberfrederic.robert29-May-07 5:02 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    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.161021.1 | Last Updated 2 Nov 2006
Article Copyright 2006 by George H. Slaterpryce III
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid