如何在C#下利用RichTextBox打开一个有文字格式和图片的Word文档

简介: 转自博客: http://blog.csdn.net/michellehsiao/article/details/7684309 小知识点:.Net Framework 4.0 和.Net Framework 4.0 Client Profile区别:       .NET Framework Client Profile是.NET Framework的裁剪版本。

转自博客:
http://blog.csdn.net/michellehsiao/article/details/7684309

小知识点:.Net Framework 4.0 和.Net Framework 4.0 Client Profile区别

      .NET Framework Client Profile是.NET Framework的裁剪版本。它面向客户端应用程序。它提供 Windows Presentation Foundation (WPF)、Windows 窗体、Windows Communication Foundation (WCF)和 ClickOnce 功能的简化子集。这可以为面向.NET Framework Client Profile 的 WPF、Windows 窗体、WCF 和控制台应用程序实现快速部署方案。

主要内容:

        当在 Visual Studio 2010 建立新项目时,如果发现 [添加引用] 中没有列出原本应该列出的组件时,可以先检查是否是项目的目标框架是否设成了 .NET 4.0 Client Profile (例如 System.Web.dll 就不在 .NET 4.0 Client Profile 套件中)。

1、添加引用:COM组件下的Microsoft Word 11.0 Object Library ,然后会出现Microsoft  Office Core和Word以及VBIDE的引用,如下图

2、修改项目属性嵌入互操作类型为false,

3、接着在命名空间中写入如下内容:

这样就可以顺利使用下面代码,而不会出错!

    Word.ApplicationClass app = new Word.ApplicationClass();
    Word.Document doc = null;
 
[csharp]  view plain copy
  1. //用richTextBox打开带格式的word文档。  
  2. //先打开word文档,全选其中的内容并保存的剪切板中,最后在richTextBox中粘贴数据,并关闭文档,支持图片和文字格式显示  
  3. public void OpenWord(string fileName)  
  4. {  
  5.     Word.ApplicationClass app = new Word.ApplicationClass();  
  6.     Word.Document doc = null;  
  7.     object missing = System.Reflection.Missing.Value;  
  8.     object File = fileName;  
  9.     object readOnly = false;  
  10.     object isVisible = true;  
  11.     try  
  12.     {  
  13.         doc = app.Documents.Open(ref File, ref missing, ref readOnly,  
  14.          ref missing, ref missing, ref missing, ref missing, ref missing,  
  15.          ref missing, ref missing, ref missing, ref isVisible, ref missing,  
  16.          ref missing, ref missing, ref missing);  
  17.   
  18.         doc.ActiveWindow.Selection.WholeStory();//全选word文档中的数据  
  19.         doc.ActiveWindow.Selection.Copy();//复制数据到剪切板  
  20.         richTextBox1.Paste();//richTextBox粘贴数据  
  21.         //richTextBox1.Text = doc.Content.Text;//显示无格式数据  
  22.     }  
  23.     finally  
  24.     {  
  25.         if (doc != null)  
  26.         {  
  27.             doc.Close(ref missing, ref missing, ref missing);  
  28.             doc = null;  
  29.         }  
  30.   
  31.         if (app != null)  
  32.         {  
  33.             app.Quit(ref missing, ref missing, ref missing);  
  34.             app = null;  
  35.         }  
  36.     }  
  37. }  

修改RichTextBox内容后,另存为功能实现代码如下:
[csharp]  view plain copy
  1. public void SaveAsWord(string fileName)  
  2. {  
  3.     Word.ApplicationClass app = new Word.ApplicationClass();  
  4.     Word.Document doc = null;  
  5.     object missing = System.Reflection.Missing.Value;  
  6.     object File = fileName;  
  7.     try  
  8.     {  
  9.         doc = app.Documents.Add(ref missing, ref missing, ref missing, ref missing);  
  10.   
  11.         doc.ActiveWindow.Selection.WholeStory();//全选  
  12.         richTextBox1.SelectAll();  
  13.         Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf);//复制RTF数据到剪贴板   
  14.         doc.ActiveWindow.Selection.Paste();  
  15.   
  16.         doc.SaveAs(ref File, ref missing, ref missing,  
  17.             ref missing, ref missing, ref missing,  
  18.             ref missing, ref missing, ref missing,  
  19.             ref missing, ref missing, ref missing,  
  20.             ref missing, ref missing, ref missing,  
  21.             ref missing);  
  22.     }  
  23.     finally  
  24.     {  
  25.         if (doc != null)  
  26.         {  
  27.             doc.Close(ref missing, ref missing, ref missing);  
  28.             doc = null;  
  29.         }  
  30.   
  31.         if (app != null)  
  32.         {  
  33.             app.Quit(ref missing, ref missing, ref missing);  
  34.             app = null;  
  35.         }  
  36.     }  
  37. }  
相关文章
|
30天前
|
C# 开发工具 数据安全/隐私保护
C# 实现 Word 加盖骑缝章效果
C# 实现 Word 加盖骑缝章效果
|
30天前
|
SQL 安全 API
C# 读取Word表格到DataSet
C# 读取Word表格到DataSet
|
3月前
|
存储 传感器 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK修改图像像素格式Mono8或者Mono10(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK修改图像像素格式Mono8或者Mono10(C#)
55 0
|
3月前
|
存储 监控 开发工具
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为AVI视频格式(C#)
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为AVI视频格式(C#)
27 0
|
3月前
|
数据采集 API 开发工具
Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现Raw格式的图像保存(C#)
Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现Raw格式的图像保存(C#)
15 0
|
30天前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
|
30天前
|
存储 SQL C#
C# 读取二维数组集合输出到Word预设表格
C# 读取二维数组集合输出到Word预设表格
|
30天前
|
SQL C# 数据库
C# 读取多条数据记录导出到 Word 标签模板
C# 读取多条数据记录导出到 Word 标签模板
|
30天前
|
API C# 数据安全/隐私保护
C# 实现网页内容保存为图片并生成压缩包
C# 实现网页内容保存为图片并生成压缩包
|
30天前
|
C# 开发工具 数据安全/隐私保护
C#实现基于Word保护性模板文件的修改
C#实现基于Word保护性模板文件的修改