2012-03-12 169 views
0

我有一个Word文档导入到我的项目的资源文件中。将Resouce文件的Word文档显示到RichTextBox控件

是否可以提取此文档并将其显示在我的应用程序的RichTextBox控件中?

我能够使用下面的类从我的项目的资源文件中提取字符串和图像对象。

enter image description here

namespace TestProject 
{ 
    public class Utilities 
    { 
     private static ResourceManager _resource = new ResourceManager("TestProject.Resource1", Assembly.GetExecutingAssembly()); 

     public static string GetString(string name) 
     { 
      return (System.String)(_resource.GetString(name)); 
     } 

     public static Image GetImage(string name) 
     { 
      return (System.Drawing.Image) (_resource.GetObject(name)); 
     } 
    } 
} 
+0

是否将文档保存为RTF格式?如果是这样,您应该能够将资源值分配给RichTextBox.RTF属性。如果不是,我严重怀疑RichTextBox可以解析其他形式的Word文档。 – adelphus 2012-03-12 10:54:24

回答

1

RTF格式为一个字符串,如果你把它添加到资源文件的文件部分,它将与一个属性包装它读取的字符串。

即:

Properties.Resources.YourDocument; 

实现为:

internal static string YourDocument { 
     get { 
      return ResourceManager.GetString("YourDocument", resourceCulture); 
     } 
    } 

,并返回富文本看起来像这样:

{\ RTF1 \ ANSI \ ansicpg1252 \ deff0 \ deflang3081 {\ fonttbl {\ f0 \ fnil \ fcharset0 Calibri;}} {\ colortbl; \ red255 \ green255 \ blue0;} {* \ generator Msftedit 5.41.21.2510;} \ viewkind4 \ uc1 \ pard \ sa200 \ sl276 \ slmult1 \ cf1 \ lang9 \ f0 \ fs22 Rich \ cf0,多行文字\ par \ par \ bs \ bs \ fs22 \ par }

离开你只是需要做:

richTextBox1.Rtf = RichTextResource.Properties.Resources.YourDocument 

,它假定该文件实际上被保存为富文本。单词doc将显示为垃圾。

最后,如果您的资源存储为byte [],则需要先转换为字符串。即

richTextBox1.Rtf = System.Text.Encoding.UTF8.GetString(bytes), assuming its UTF8 encoded. 
+0

谢谢Steven,会试试这个。 – yonan2236 2012-03-12 11:41:31

+0

我检查了导入到我的项目的资源文件中的RTF,它是byte []类型。我也没有使用Visual Studio,所以我使用上面的类手动获取资源值。 – yonan2236 2012-03-12 11:47:29

+0

也许我只是需要在分配给'richTextBox1.Rtf'之前将这个byte []转换为Rtf文档。不知道虽然... – yonan2236 2012-03-12 11:50:24

相关问题