代码之家  ›  专栏  ›  技术社区  ›  Josh Smeaton

如何保存web应用程序中的富文本并将其显示在富文本框中

  •  1
  • Josh Smeaton  · 技术社区  · 17 年前

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

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

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

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

    web表单是用PHP编写的。

    5 回复  |  直到 17 年前
        1
  •  1
  •   BFree    17 年前

    如果用户无法在Windows端编辑数据,而只能在web端编辑数据,则可以将HTML源存储在数据库中,并在Windows应用程序的Webbrowser控件中显示该源。。。

        2
  •  1
  •   Community Mohan Dere    9 年前

    正如 BFree 如上所述,在web环境中要做的最好的事情就是使用富文本HTML编辑器。幸运的是你有 numerous free editors 在外面。如果您在数据库中以HTML格式存储信息,并选择在Web表单中重复使用该信息,您将无法使用Web浏览器控件。但是,您可以选择通过使用库在HTML和RTF之间来回转换该信息。

        3
  •  1
  •   Gokul    17 年前

    使用web浏览器控件,并使用您在web表单中使用的相同编辑器,以便将来不会出现复杂问题。

        4
  •  1
  •   CodeJanitor    17 年前

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

    我试着研究RTF规范,但仅仅阅读规范并知道该做什么有点挑战性。

    我建议打开写字板(Start->Run…->Wordpad),然后乱搞不同的字体样式等等。然后将其保存为某个RTF文档。在您选择的纯文本编辑器中打开该文档(我使用 Notepad++ ),这将帮助您更轻松地计算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;
    
        5
  •  0
  •   NKN    11 年前

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

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