質問

しかし、私は見たくて投稿のサイトにRTFからHTMLへもなう一部のHTMLをRTFコンバーターが思っていることができるよう、フルの内訳であると考えられる最も広く使用されている商品、オープンソース製品の場合や人のお勧めホーム栽培されています。おればこのことを考え複製問題が作り出してしまおうというもの製品をマトリクスを最も生存率の高い当社の願います。ろうと考えます。

のコンバータが利用することにASP.NET 2.0願いまへのアップグレード3.5後もこだわりケ)SQLServer2005年後の2008年)としてのDBです。

からの読みの数投稿 SautinSoft さとして人気の商ます。については、その商品がんをお勧めしに変換するHTMLをRTF?価格は問題ない場合でもちょっとなので、負荷側に記入してくださいます。

オープンソースにおいて、その OpenOffice.org として実行することがサービスできるように変換します。しかし、これだけのJavaベースです。ん、私も必要のinterop使用。いてどのようにお考えですか。NETオープンソースの部品があった場合、それが変換のためのHTMLをRTF?

家庭用栽培は、XSLTへの道すがら、XHTML?る場合、どのようなcomponentのくらいの生成XHTML?その他、どのような資料がどのような自avenusesいます。

また、私は現在、気にしないでく、RTFからHTMLへ.場合に商用部品には、この価格は同じ、細か、そうでないてくださいという言葉は使っていないのです。

役に立ちましたか?

解決

私は仕事は本当に複雑ではないとして、それを自分で行うことをお勧めします。まず、最も簡単な方法は、別のXML形式に1つのXML形式を変換XSLTです。 C#でXML文書を変換することは超簡単です。

ここであなたが始めるのに良いMSDNのブログ記事です。マイクも第三者に対処するための手でこれを行うには簡単だったと述べています。

リンクする

実は、私はすでにこの質問<のhref = "https://stackoverflow.com/questions/150208/how-do-i-convert-html-to-rtf-rich-text-in-net-withoutに答え-paying-成分のために ">ここを。それは、この重複になると思います。

他のヒント

何のためにその価値と順不同インチ

私は、MS Wordのによって操作されているRTFにエクスポートして、RTFから問題になっているRTFをインポートしたい前にしながら、Aをます。

最初の問題は、RTFはオープンスタンダードではないです。これは、内部MS標準であり、彼らのようにそれを変更して、彼らが好きな時に、一般的に互換性の心配はありませんがFORE。現在、RTFのバージョンは1.3〜1.9であり、それらはすべて異なっています。内部的には、彼らはちょうど良い測定のための測定のためのtwip単位を使用します。

私は助けと良いですMSのドキュメントをたくさん読んで、件名にオライリーポケットブックを買ったが、各バージョンのそれの多くとたくさんあります。

ので、RTFを操作するための正規表現を使用して符号化された方法のは非常に大変な作業で、テストして動作させるために慎重な取り扱いと集中が必要です。私は私が着実に各セクションをテストし、コードにそれを構築することができるように正規表現に内蔵されていたマック・エディタを使用します。

ので、バージョンの数のバージョン間の非互換性の多くもありますが、そこに共通点がたくさんあるし、最後に、それはおよそ読み週間とコーディング週間後(私が望んでいた場所を取得するのは簡単/合理的に大変でした)と、本当に簡単なバージョンを生産ます。

私は、商業的な解決策を見つけたことはありませんが、私はそれは多くのことを切り出すが、それはあなたが望む行い、サポートしていることを確認するために、1つを選択する際に細心の注意を払うようので、予算の上の自由を持っていた。

私はあなたがHTML / XML / XHTMLどこから来ているとは思わない、私はCSV形式に変換して、それRTFます。

私は私はDIYに助言または買うかどうかわかりません。おそらくバランスDIYではなく、独自の事情ことを指示されます。

編集:RTFへのコンテンツから行くことの一つは、その逆よりも簡単です。

は、ところで、彼らは、彼らが好きなものを行うことができますので、ちょっと、それは彼らのものとプロプライエタリだ、RTFバージョンMSフィオルを批判しない。

私はまた、RTFコンバータにHTMLを持っているウェブのためにこのWYSIWYGリッチテキストエディタ(RTE)に出くわし、かわいいです.NET のエディタ。誰もがこのコンポーネントでの経験を持っていますか?ウェブベースのRTEのための私の主な経験は、私の知る限りで構築されたRTFコンバータにHTMLを持っていないCKEditorバージョンとTinyMCEのを言うことができるようにCKEditorバージョン(FCKeditorヘルプ)とTinyMCEのあったけどきます。

今の実施に必要なもmailmerge能力と豊かな文字のフォーマット、Webアプリケーションいつも自分の体験です。

うちは基本的に探二つの選択肢:

  • Google Docs APIによるレバレッジは、Google Docsの機能
  • 使用XSLTとして表示 この小論文

GoogleドキュメントAPIにより確かなものになるはずだ。問題は、アップロードが完了しましたHTMLドキュメントと改ページす:

<p style="page-break-before:always;display:none;"/>

いGoogleに変換するdoc、RTF,本体を万が一紛失してしまって休憩するものとなっ条件です。ただし、改ページな問題かってしまいましたがチェックこのソリューションです。

は、XSLTソリューションでは、...並べ替えます。

できれば参考MSXML3COMオブジェクトに直接、雇System.Xml ます。そのなかったです。また、そうしても基本的なフォーマットとタグを控除したテキストの色、サイズします。ただし、表彰のページをブレイクがあります。:-)

い図書館を書いて、tidy.net をHTMLとXHTMLに変換します。希望です。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ADDS.Mailmerge
{

    public class XHTML2RTF
    {

        MSXML2.FreeThreadedDOMDocument _xslDoc;
        MSXML2.FreeThreadedDOMDocument _xmlDoc;
        MSXML2.IXSLProcessor _xslProcessor;
        MSXML2.XSLTemplate _xslTemplate;
        static XHTML2RTF instance = null;
        static readonly object padlock = new object();

        XHTML2RTF()
        {
            _xslDoc = new MSXML2.FreeThreadedDOMDocument();
            //XSLData.xhtml2rtf is a resource file 
            // containing XSL for transformation
            // I got XSL from here: 
            // http://www.codeproject.com/KB/HTML/XHTML2RTF.aspx
            _xslDoc.loadXML(XSLData.xhtml2rtf);
            _xmlDoc = new MSXML2.FreeThreadedDOMDocument();
            _xslTemplate = new MSXML2.XSLTemplate();
            _xslTemplate.stylesheet = _xslDoc;
            _xslProcessor = _xslTemplate.createProcessor();
        }

        public string ConvertToRTF(string xhtmlData)
        {
            try
            {
                string sXhtml = "";
                TidyNet.Tidy tidy = new TidyNet.Tidy();
                tidy.Options.XmlOut = true;
                tidy.Options.Xhtml = true;
                using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(xhtmlData)))
                {
                    StringBuilder sb = new StringBuilder();
                    using (MemoryStream sw = new MemoryStream())
                    {
                        TidyNet.TidyMessageCollection messages = new TidyNet.TidyMessageCollection();
                        tidy.Parse(ms, sw, messages);
                        sXhtml = Encoding.UTF8.GetString(sw.ToArray());
                    }
                }

                _xmlDoc.loadXML(sXhtml);
                _xslProcessor.input = _xmlDoc;
                _xslProcessor.transform();
                return _xslProcessor.output.ToString();
            }
            catch (Exception exc)
            {
                throw new Exception("Error in xhtml conversion. ", exc);
            }
        }

        public static XHTML2RTF Instance
        {
            get
            {
                lock (padlock)
                {
                    if (instance == null)
                    {
                        instance = new XHTML2RTF();
                    }
                    return instance;
                }
            }
        }
    }



}

TL;DR: 私はお使いになることをお勧めし OpenXml フォーマット、 HtmlToOpenXml nugetパッケージが可能です。


Microsoft Word COM

しんのうのを検索しくはこの話題としての私の使用機能をサーバーをwindowsラングレビーチ、ロレドビーチます。


XHTML2RTF

として @IAmTimCoreyて 利用することができcodeproject図書館があります。

デメリット:

  • 限り対応HTMLとCSS
  • をしなければいけません。当期純
  • ...

Windows Forms Webブラウザ

として @ジェリー上 利用できるWindows Forms WebBrowser ます。

デメリット:

  • 参照します。Windowsの場合です。形態
  • 使用コピー&ペーストを問題にmultithreading)
  • だけに駅スレッド

なさい:

  • フォント
  • 番号リスト
  • Strikethrough(del 要素)
  • ...

DevExpress

コードのサンプル"Paul V"から devexpress支援センター. (03.02.2015)

public String ConvertRTFToHTML(String RTF)
{   
    MemoryStream ms = new MemoryStream();
    StreamWriter writer = new StreamWriter(ms);
    writer.Write(RTF);
    writer.Flush();
    ms.Position = 0;
    String output = "";
    HtmlEditorExtension.Import(HtmlEditorImportFormat.Rtf, ms, (s, enumerable) => output = s);

    return output;
}

public String ConvertHTMLToRTF(String Html)
{
    MemoryStream ms = new MemoryStream();
    var editor = new ASPxHtmlEditor { Html = html };

    editor.Export(HtmlEditorExportFormat.Rtf, ms);

    ms.Position = 0;
    StreamReader reader = new StreamReader(ms);

    return reader.ReadToEnd();
}

ご利用可能に RichEditDocumentServer タイプとして表示 この例では、.

どのような実際のサポートします。

デメリット:

  • 価格
  • 多くの参照のために小さなもの
  • ます。

なさい:

  • Striketrough(del 要素)

Sautinsoft

public string ConvertHTMLToRTF(string html)
{
    SautinSoft.HtmlToRtf h = new SautinSoft.HtmlToRtf();
    return h.ConvertString(htmlString);
}

public string ConvertRTFToHTML(string rtf)
{
    SautinSoft.RtfToHtml r = new SautinSoft.RtfToHtml();
    byte[] bytes = Encoding.ASCII.GetBytes(rtf);
    r.OpenDocx(bytes );
    return r.ToHtml();
}

以上の例は、設定オプションです こちらのこちらの.

対応は以下の:

  • HTML3.2
  • HTML4.01
  • HTML5
  • CSS
  • XHTML

デメリット:

  • なんなのかどう活躍の開発
  • 価格

ナレッジベースの利用:

  • 変換する番号リストから trix角編 破壊indend

DIY

また支援機能が制限されます自分のコンバータです。りませんこの場合、サポート機能が大きすぎます。

私は小さな サンプルプロジェクトこちら では教育目的その現在の状態に固定されます。


OpenXml

の場合 OpenXml形式 もokご利用の場合に利用できます HtmlToOpenXml nugetパッケージ.そして、その自由なって支援すべての機能をいかに他のソリューション。

のプロジェクト に基づく Open Xml SDK マイクロソフトが活躍しました。

public static byte[] ConvertHtmlToOpenXml(string html)
{
    using (var generatedDocument = new MemoryStream())
    {
        using (var package = WordprocessingDocument.Create(generatedDocument, WordprocessingDocumentType.Document))
        {
            var mainPart = package.MainDocumentPart;
            if (mainPart == null)
            {
                mainPart = package.AddMainDocumentPart();
                new Document(new Body()).Save(mainPart);
            }

            var converter = new HtmlConverter(mainPart);
            converter.ParseHtml(html);

            mainPart.Document.Save();
        }

        return generatedDocument.ToArray();
    }
}

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top