Convert RTF to HTML in .NET

后端 未结 4 801
陌清茗
陌清茗 2021-01-19 18:47

I\'ve managed to do the reverse using WebBrowser and RichTextBox.

But how would I convert RTF to HTML?

相关标签:
4条回答
  • 2021-01-19 19:21

    If you pop-up NuGet and search for "RTF", the most popular result right now looks like RtfPipe; you can install it right there, or via the package manager console via:

    Install-Package RtfPipe
    

    Then in your C#, you can convert RTF to HTML super easily:

    var html = RtfPipe.Rtf.ToHtml(rtf);
    

    According to the readme.md on their GitHub page:

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

    I piped my RTF into it, and it worked amazingly. YYMV.

    0 讨论(0)
  • 2021-01-19 19:23

    If you want to do it programattically you should parse your rtf (is a simple text based file), convert rtf control words to html tags.

    Here you can find the rtf specs http://www.biblioscape.com/rtf15_spec.htm

    or use an already existing converter: http://sourceforge.net/projects/rtf2html-lite/

    0 讨论(0)
  • 2021-01-19 19:37

    Disclaimer: I'm working for this company.

    As I see, the question is old but maybe someone search solution for this too. Our component RTF to HTML allows to convert RTF to HTML. You may download a component or try online-demo. Try the trial version first if you have a doubt. :) Trial is free.

    Here's the code sample for the converting from RTF to HTML in ASP.NET:

        SautinSoft.RtfToHtml r = new SautinSoft.RtfToHtml();
        r.OutputFormat = SautinSoft.RtfToHtml.eOutputFormat.HTML_401;
        r.ImageStyle.IncludeImageInHtml = false; //To save images inside HTML as binary data specify this property to 'true'
    
        r.ImageStyle.ImageFolder = Server.MapPath(""); 
        r.ImageStyle.ImageSubFolder = "images";
        r.ImageStyle.ImageFileName = "picture";       
    
        string rtf = ".....";
        string html = r.ConvertString(rtf);        
    
        //show HTML
        if (html.Length>0)
        {
            Response.Buffer = true;
            Response.Clear();
            Response.ContentType = "text/html";
            Response.Write(html);
            Response.Flush();
            Response.End();
        }
    
    0 讨论(0)
  • 2021-01-19 19:45

    The only problem is when you work on a budget, additional costs mean lower profit, so I started to develop my own version. The main problem is that at the moment it only supports Bold and Italic, and certain entities (&amp, &copy, &reg, &trade, &euro and &###) and lacks both font and color support, but it is still a work in progress. I am adding font and color, but my headache is that these could come from stylesheets rather than the old fashion html tags.

    I am writing this in VB.NET and have posted the startup code on CodeProject

    Startup Code

    0 讨论(0)
提交回复
热议问题