2009-06-03 62 views
1

我正在与同事一起处理应用程序 - 她正在编写一个Web窗体,允许用户输入和管理文本将被保存到数据库,然后显示在桌面应用程序中。如何从Web应用程序保存富文本并将其显示在富文本框中

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

我想知道是否有标签或可以输入到网页表单(如[或] []等),将自动显示RTB格式。

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

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

更新: Web表单使用PHP。

回答

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

如果用户无法在Windows端编辑数据,但只能在网页端进行编辑,则可以将HTML源代码存储在数据库中,并将其显示在Windows应用程序的Webbrowser控件中。

1

就像BFree提到的那样,您在网络环境中要做的最好的工作是Rich Text HTML编辑器。幸运的是,在那里有numerous free editors。如果将信息作为HTML存储在数据库中,并选择在WebForm中重新使用该信息,则会停留在Web浏览器控件中。但是,您可以选择通过使用库在HTML和RTF之间来回转换该信息。

不幸的是,经过一番搜索后,我无法找到任何你不必支付的费用。您可以将MS Word用作数据泵以编程方式进行转换,但这可能无法很好地扩展。

1

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

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

HTH

0

创建一个文件夹所谓的气温,然后使用此代码

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

不是我所要求的。问题是关于从PHP中保存RTF,并在WinForms中将其显示为RTF。尽管这是一个非常古老的问题。我现在只需保存HTML并将其显示在WebBrowser控件中。 – 2014-10-21 22:31:20