【问题标题】:How to save rich text from a web application and display it in a rich text box如何从 Web 应用程序中保存富文本并将其显示在富文本框中
【发布时间】:2009-06-03 00:32:29
【问题描述】:

我目前正在与一位同事一起开发一个应用程序 - 她正在编写一个 Web 表单,允许用户输入和管理将保存到数据库中然后显示在桌面应用程序中的文本。

我正在使用富文本框来显示数据库中的文本。我们希望允许用户在 Web 应用程序中使用基本格式(粗体、斜体、下划线),然后在桌面应用程序中显示该格式。

我想知道是否有可以在 Web 表单中输入的标签或其他内容(如或 [b] 等),它们会自动在 RTB 中显示格式。

如果这不可能,实现此功能的最佳方法是什么?

我正在为桌面应用程序使用 C# windows 窗体。

更新: Web 表单是 PHP 格式的。

【问题讨论】:

    标签: c# winforms formatting webforms richtextbox


    【解决方案1】:

    几年前我玩过这个 - 基本上我在数据库中有文本,我正在标记以强调某些单词。我在存储过程中对其进行了标记,然后在客户端将其转换为 RTF。

    我尝试查看 RTF 规范,但仅阅读规范并知道该做什么有点挑战性。

    我建议打开写字板(开始 -> 运行... -> 写字板),并使用不同的字体样式等。然后将其另存为 RTF 文档。在您选择的纯文本编辑器中打开该文档(我使用Notepad++),这将帮助您更轻松地了解 RTF。

    这是我创建的一个简单 RTF 文档的示例:

    {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
    {\colortbl ;\red0\green0\blue255;}
    {\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 Hello World.\par
    \b This text is bold.\b0\par
    \i This text is italicized.\i0\par
    \cf1 This text is blue.\cf0\par
    }
    

    其中一些标签只是您可能不需要的额外标记。玩玩看看。

    最终你应该能够按照以下方式做一些事情:

    string rtf = GetMarkupTextFromServer();
    rtf = rtf.Replace("[b]", @"\b");
    rtf = rtf.Replace("[/b]", @"\b0");
    rtf = rtf.Replace("[i]", @"\i");
    rtf = rtf.Replace("[/i]", @"\i0");
        ...
    mRichTextBox.Rtf  = rtf;
    

    【讨论】:

      【解决方案2】:

      如果用户无法在 Windows 端编辑数据,而只能在 Web 端编辑数据,您可以将 HTML 源代码存储在 DB 中,并将其显示在 Windows 应用程序的 Webbrowser 控件中...

      【讨论】:

        【解决方案3】:

        正如BFree 提到的,您在网络环境中要做的最好的事情就是富文本HTML 编辑器。幸运的是,那里有numerous free editors。如果您将信息作为 HTML 存储在数据库中并选择在 WebForm 中重新使用它,那么您将被 Web 浏览器控件困住。但是,您可以选择通过使用库在 HTML 和 RTF 之间来回转换该信息。

        很遗憾,经过一番搜索,我找不到任何您无需付费的东西。您也许可以利用 MS Word 作为数据泵以编程方式进行转换,但这可能无法很好地扩展。

        【讨论】:

          【解决方案4】:

          使用网络浏览器控件并使用您在网络表单中使用的相同编辑器,这样您以后就不会遇到复杂的问题。

          您可以在两种环境中拥有相同的外观和感觉。如果您需要帮助以使用 Web 形式的编辑器,请回复此消息。

          HTH

          【讨论】:

            【解决方案5】:

            创建一个名为 temp 的文件夹,然后使用此代码

            frmEditPro.RichTextBox1.SaveFile("C:\temp\Doc1.rtf", _RichTextBoxStreamType.RichText)
            

            【讨论】:

            • 不是我想要的。问题是关于从 PHP 中保存 RTF,并将其显示为 WinForms 中的 RTF。这是一个非常古老的问题。我现在只需保存 HTML 并将其显示在 WebBrowser 控件中。
            猜你喜欢
            • 2019-06-10
            • 1970-01-01
            • 1970-01-01
            • 2011-09-23
            • 1970-01-01
            • 2012-06-26
            • 1970-01-01
            • 2014-02-09
            • 1970-01-01
            相关资源
            最近更新 更多