jm.RtfPipe

RtfPipe is a .NET library for parsing Rich Text Format (RTF) streams and converting them to HTML


Keywords
html, rich, rtf, text
License
MIT
Install
Install-Package jm.RtfPipe -Version 1.0.0

Documentation

RtfPipe

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.

Usage

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);

Installing via NuGet

NuGet version

Install-Package RtfPipe

Building

Run build.ps1 from the root of the project to build it. The NuGet package will be output to the artifacts directory.

RTF Support

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

.Net Targets

The NuGet package can be used with the following .Net targets

  • .Net 3.5+
  • .Net Standard 2.0+