最近在编写一个在线考试系统,客户要求能导入word格式的题库,并且该题库还包含图像;

由于以前一直没接触过office编程,在网上查找了c#操作word基本代码;

其中读取word中的图像并保存的思路及代码主要包括两种:

第一种:把word文档保存为html文档,然后再对提取出来的图片进行下一步处理,代码片段如下:

Microsoft.Office.Interop.Word._Application oWord = new Word.Application();

object oReadOnly = false;

object oMissing = System.Reflection.Missing.Value;
 Word._Application oWord = new Word.Application();
oWord.Visible = false;
//打开word文档
Word.Document oDoc = oWord.Documents.Open(ref oFileName, ref oMissing,

  ref oReadOnly, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,

  ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

oDoc.saveAs(ref osaveFileName, ref Word.WdSaveFormat.wdFormatHTML,

  ref oReadOnly, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,

  ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

/*以html格式保存该word文档后,对图像文件进行处理,此处省略*/

oDoc.Close(ref oMissing, ref oMissing, ref oMissing);
oWord.Quit(ref oMissing, ref oMissing, ref oMissing);
Marshal.ReleaseComObject(oDoc);
Marshal.FinalReleaseComObject(oWord);
oWord = null;

第二种:

foreach(Word.InlineShape inlineShape in oDoc.InlineShapes) {

  inlineShape.Select();
  oWord.Selection.Copy();
  System.Drawing.Image image = System.Windows.Forms.Clipboard.GetImage();
  image.Save(savePath + user.UserName + ".jpg");

}

此处省略了异常处理机制,在具体使用时请自行加上

在forms程序中使用正常,当在web中使用时出现异常,System.Windows.Forms.Clipboard.GetImage();方法获取到的数据为空

原因是剪贴板只能在客户端使用,在服务器端使用时,必须锁定共享资源剪贴板;

解决办法为:在使用此方法的aspx页面的page指令行中加入AspCompat="true"

形式如:<%@ Page Language="C#" AspCompat="true" .............. %>

至此问题解决。

在此写下主要是为了防止自己忘记,有写的不对的大家指出,有什么不明白可以留言!

转载于:https://www.cnblogs.com/aDust/archive/2010/06/25/1764822.html

.net操作读取word中的图像并保存相关推荐

  1. java 操作 word 表格和样式,java读取word表格中的表格 java如何读取word中的excel表格数据...

    Java 利用poi 可以直接读取word中的表格保持样式生1.读取word 2003及word 2007需要的jar包 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi ...

  2. Java读取word中表格

    因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...

  3. Word控件Spire.Doc 【图像形状】教程(4) 用 C# 中的文本替换 Word 中的图像

    Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...

  4. Word控件Spire.Doc 【图像形状】教程(11): 如何在 C# 中为 Word 中的图像设置 Transeperant 颜色

    Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...

  5. Word控件Spire.Doc 【图像形状】教程(2) ;在 C#、VB.NET 中从 Word 中提取图像

    Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...

  6. Word控件Spire.Doc 【图像形状】教程(7): 如何使用 C# 在 Word 中替换图像

    Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...

  7. python中读取word信息_Python实现批量读取word中表格信息的方法

    本文实例讲述了Python实现批量读取word中表格信息的方法.分享给大家供大家参考.具体如下: 单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件里,写了个py ...

  8. python处理表格数据-python读取word 中指定位置的表格及表格数据

    1.Word文档如下: 2.代码 # -*- coding: UTF-8 -*- from docx import Document def readSpecTable(filename, specT ...

  9. python读取word中后缀名docx的文件的表格

    1.安装所需要的解析包 pip install python-docx pip install docx 2.使用代码例子来进行演示用法 解析出word中的如下表格: def parse_docx(f ...

最新文章

  1. 2021年大数据Flink(二十五):Flink 状态管理
  2. 美卫星拍最详细3D地图 覆盖地球99%大陆
  3. 单元测试——第六周作业
  4. 上传漏洞新姿势(限Linux)
  5. 最大公约数 数学,结论 第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛
  6. VTK:相互作用之ImageClip
  7. SLF4JLoggerContext cannot be cast to LoggerContext
  8. Centos6.5 Couchdb安装
  9. java毕业生简历_一个18年毕业生的Java简历
  10. 再见python你好julia_再见 Python 2,你好 Python 3
  11. CCF-CSP 201903-1 小中大(python实现)
  12. 1.12 DICOM彩色图像
  13. git时光穿梭机总结
  14. 华为网络设备综合配置实验
  15. 聊一聊ThreadLocal内存泄漏的问题
  16. php学生在线交流平台,php学生社团活动报名系统
  17. (centos7-x86)编译安装zabbix6.0LTS+Mariadb10.5+Apache+php7.4【安装完整版】
  18. day16_雷神_前端04
  19. 历史上的今天:PHP公开发布;iPhone 4 问世;万维网之父诞生
  20. 怎样学好计算机英语,怎样学好小学英语

热门文章

  1. 增加mysql的sortbuffer_mysql 参数调优(14)之优化filesort sort_buffer_size、innodb_sort_buffer_size...
  2. html页面图片翻转特效代码,如何使用css实现翻转图片的效果(附代码)
  3. STM8S003单片机串口通信通信协议分析
  4. 通过原码、反码、补码彻底搞清左移、右移、无符号右移
  5. 学完Java基础后的总结
  6. deeplung 代码讲解(自己的理解)(我只是稍微贴下数据增强这部分的代码,其它的借鉴wuzeyuan大神的)lung16数据
  7. Python风格总结:十进制转二进制、八进制、十六进制
  8. c++的类中,声明一个对象好还是用指针申请一块空间好?
  9. 百面机器学习 #3 经典算法:01-1 线性可分(硬间隔)支撑向量机SVM
  10. Django-ModelFrom中修改save后的字段值