刚在研究研究怎么可以在.NET程序中把WORD文档另存为XPS文件,学习了一些概念和操作,马上记录下来吧,进入正题。

  1. 添加与WORD互操作的类库,里面包含着WORD对象模型的.NET表示:

  一看就知道微软在建立OFFICE与.NET的互操作平台上花了不少的努力,看这么多的DLL就猜到了。选择了Microsoft.Office.interop.Word类库后,就可以实现一系列与WORD的互操作。接下来还要在程序中引用相应的命名空间:

using Microsoft.Office.Interop.Word;

  2. 创建WORD进程对象,WORD并不代表一个或两个文档文件,它是这些文档文件的处理环境,或者说WORD也是一个虚拟机,不过就是一个只进行文档处理的虚拟机。于是要与WORD互操作实现文档处理,首先要创建其进程环境:

Application appClass = new Application();

appClass.Visible = true;

  创建这个WORD进程还是比较简单的。Visible属性可以设置该WORD进程是否UI可见,设置为true的话,效果就跟我们平常打开WORD文档后一样。

  3. 打开WORD文档, 我的目的是要把一份WORD文档另存为其他格式的文件,当然我可以重新编辑一个WORD文档,但是我选择打开一份已有的WORD文档作为代替,因为这样可以忽略关于WORD文档编辑的程序难点:

代码

Object missing = System.Reflection.Missing.Value;

Document wordDoc = new Document(ref missing, ref missing, ref missing, ref missing);

object fileName = @"E:\test";
wordDoc = appClass.Documents.Open(ref fileName,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing);

  说实在,刚开始研究这玩意,看到那么多奇怪的参数真是非常不习惯。Document是WORD对象模型中的文档类,当然不要和其他其他命名空间下的Document混淆了。构造这个Document对象可以不使用任何有效的构造参数,默认就可以。然后就是通过WORD进程对象打开一份已有的WORD文档了。打开的方法中最重要当然是指定文档所在的路径了,也就是第一个参数,由于WORD对象模型中很多方法的参数都是ref object类型,于是我只能继续入乡随俗了(注意路径中没有文件后缀名,这个是可选的),其他的参数继续默认。来到这里就已经打开了一份已有的WORD文档。

  4. 选择保存的文件格式,调用SaveAs方法:

代码

object format = WdSaveFormat.wdFormatXPS;
object savePath = @"E:\test.xps";

wordDoc.SaveAs(ref savePath, ref format,

         ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
         ref missing, ref missing, ref missing, ref missing);

  所有支持的保存文件的格式都在WdSaveFormat枚举类型中定义,这个枚举类型的定义明显是受到当前机器上安装的OFFICE版本影响,我的是2007。 定义了路径名,选择了保存文件格式的枚举类型,就可以调用Document对象的SaveAs方法,并在前两个参数中指定,其他参数使用默认值。就这样就完成了使用.NET对WORD文档进行文件格式转换的目的。

  Thanks for reading! nice!

转载于:https://www.cnblogs.com/klzwj1988/archive/2010/08/02/1790631.html

.NET操作WORD文档另存为其他格式的文件相关推荐

  1. word文档另存为pdf格式,如何设置导航栏

    打开论文对应的word,点击另存为,设置保存类型为PDF,之后点击选项,勾选创建书签时使用:标题,导出文件即可.

  2. 如何批量将 Word 文档转为 ePub 格式

    概要:ePub 是一个自由的开放标准,属于一种可以"自动重新编排"的内容,也就是文字内容可以根据阅读设备的特性,以最适于阅读的方式显示,所以现在主流的电子书基本都是 ePub 的. ...

  3. Java操作word文档将docx转换为pdf格式

    Java操作word文档将docx转换为pdf格式 一.整体说明 在上传 Office 课件时,格式有:doc,docx,xls,xlsx,ppt,pptx,程序需要将其 转换成 pdf 格式, 才能 ...

  4. 【软件操作】Office将Word文档转换为PDF格式

    一.问题描述 PDF格式(Portable Document Format)相比于Word文档(.doc/.docx格式)体积更大,但具有更好的文档一致性(减少排版问题),修改更困难(不易被外界篡改) ...

  5. java使用jacob操作word文档

    ava使用jacob操作word文档 java调用com组件操作word使用总结(jacob) 简单描述 在此处输入简单摘要 特别声明:使用java-com技术可以完成任何VBA可以完成的office ...

  6. poi操作word文档总结

    POI分段落生成纯Word动态模板并导入数据 导出数据,可以用word另存为xml格式的ftl文件,变量用${变量名}表示,然后在类中通过 freemarker去替换变量. 但是怎么导入word数据. ...

  7. 浅谈Word.Application,关于js操作word文档的使用

    这篇文章只是说个人放个笔记在这里,并没有讲解的意思,但为了进来的朋友能知道我在说啥,写的过程中我还是简单介绍一下. 官网地址:https://docs.microsoft.com/zh-cn/offi ...

  8. 如何批量将 Word 文档转为 HTML 格式

    概要:HTML 的全称为超文本标记语言,是一种标记语言.我们可以将所需要表达的信息按某种规则写成 HTML 文件,这样可以通过专用的软件来识别,比如常用的浏览器.这些软件可以将这些 HTML 文件&q ...

  9. C#操作Word文档

    1.c#操作word 在指定书签插入文字或者图片 using Word = Microsoft.Office.Interop.Word; object Nothing = System.Reflect ...

最新文章

  1. R语言构建xgboost模型:xgb.cv函数交叉验证确定模型的最优子树个数(可视化交叉验证对数损失函数与xgboost模型子树个数的关系)、交叉验证获取最优子树之后构建最优xgboost模型
  2. 程序员做产品需要知道
  3. 三. 2d-2d三角化求路标point
  4. VMware虚拟机安装 windows server 2012 SQL server2012
  5. 数据仓库工具箱维度建模权威指南-第一章 数据仓库、商业智能及维度建模初步
  6. 笔记本电脑内网、外网一起使用
  7. 用 Java 开发自己的 Kubernetes 控制器,想试试吗?
  8. jquery通过ajax方法获取json数据不执行success
  9. mysql学习day02
  10. LintCode 寻找旋转排序数组中的最小值 II
  11. python 拼音 四线格_拼音四线三格中的写法示意及书写注意事项
  12. 微弱信号检测(放大电路篇——集成运放)
  13. uc3854 matlab仿真,基于UC3854硬开关PFC变换电路设计课程设计.doc
  14. app指纹登录 java后端_Android应用实现指纹登录
  15. 困境下的SEO,站长如何自渡?
  16. 计算机学硕报考院校人数,2020考研报考人数:这些学校人数过万!
  17. 聪明人做生意,打折也能玩出新鲜感!让顾客觉得现在不买就是亏!
  18. 是否可以同时学习两门编程语言?——我的语言学习经验告诉我不行
  19. PMI-PMP模考二错题解析(2022-01-21 21:46:29)
  20. 【DeepDive Tutorial 】Extracting mentions of spouses from the news

热门文章

  1. 基于MATLAB的信号与系统实验指导,《信号与系统及MATLAB实现》实验指导书
  2. Linux下串口编程基础
  3. 每天一道LeetCode-----找出给定序列的所有子序列
  4. PHP框架和springboot区别,Spring和SpringBoot的区别
  5. java里的主线程和子线程以及finally不会执行的特殊情况
  6. 牛客 contest893 G-Truthman or Fakeman
  7. einops包中的rearrange,reduce, repeat及einops.layers.torch中的Rearrange,Reduce。对高维数据的处理方式
  8. linux下常用的关机命令有:shutdown、halt、poweroff、init;重启命令有:reboot。下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法。
  9. 人工神经网络_验证码破译(数据挖掘入门与实践-实验9)
  10. scikit-learning_特征分析(数据挖掘入门与实践-实验7)