RtfPipe is a .NET library for parsing Rich Text Format (RTF) streams and converting them to HTML. While initially adapted from the work started by Jani Giannoudis, it has been completely rewritten to support more features. When combined with the BracketPipe library, this library can also be used to convert RTF streams to various text format such as Markdown and Textile.
Below is a simple example of converting an RTF string to an HTML string.
NOTE: When using this in .Net Core, be sure to include the NuGet package
System.Text.Encoding.CodePages
. Also call the line marked in the region before calling any functions in the library.
#if NETCORE
// Add a reference to the NuGet package System.Text.Encoding.CodePages for .Net core only
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
#endif
var html = Rtf.ToHtml(rtf);
Install-Package RtfPipe
Run build.ps1
from the root of the project to build it. The NuGet package will be output to the
artifacts
directory.
This library attempts to support the core RTF features documented in the RTF Specification 1.9.1. These features include:
- Character formatting (bold, italics, color, ...)
- Tables (including nested tables)
- Lists
- Hyperlinks
- Pictures
- Heading levels
- HTML encapsulation (e.g. as performed by Outlook)
With that said, there are numerous cases for non-trivial documents where the library will not produce the "correct" visual representation when compared to other RTF readers (such as MS Word).
The NuGet package can be used with the following .Net targets
- .Net 3.5+
- .Net Standard 2.0+