word to txt
2015-12-03 13:59
381 查看
#include "stdafx.h"
#include "HandleWord.h"
#include "msword.h"
HandleWord::HandleWord()
{
}
HandleWord::HandleWord(const char* fileName)
{
FileName=fileName;
}
HandleWord::~HandleWord()
{
}
void HandleWord::TransFormToTxt()
{
_Application WordApp;
CoInitialize(NULL);
if(!WordApp.CreateDispatch("Word.Application",NULL))
{
//AfxMessageBox("创建Word服务失败!");
exit(1);
return;
}
WordApp.SetVisible(TRUE);
COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
Documents docs=WordApp.GetDocuments();
docs.Open(COleVariant(FileName),
vFalse,vFalse,vFalse,COleVariant(""),COleVariant(""),
vFalse,COleVariant(""),COleVariant(""),
COleVariant((short)0),COleVariant("UTF-8")
,vTrue,vFalse,COleVariant((short)0),vFalse,
COleVariant(""));
_Document active_doc;
active_doc = WordApp.GetActiveDocument();
active_doc.SaveAs(COleVariant("D:\\12.txt"),
COleVariant((short)2),
vFalse, COleVariant(""),vFalse, COleVariant(""),
vFalse,vTrue,vFalse,vFalse,vFalse,COleVariant("936"),//COleVariant(L"UTF-8")
vFalse,vFalse,COleVariant((short)0),vFalse);
WordApp.Quit(vOpt, vOpt, vOpt);
}
COleDispatchDriver没有基类。
COleDispatchDriver类实现OLE自动化中的客户方。OLE调度接口为访问一个对象的方法和属性提供了途径。COleDispatchDriver的成员函数连接,分离,创建和释放一个IDispatch类型的调度连接。其它的成员函数使用变量参数列表来简化调用IDispatch::Invoke。
要获得更多的信息,参见“Win32 SDK OLE程序员参考”中的IDispatch和IDispatch::Invoke。
这个类可以直接使用,但一般来说,它只是由用ClassWizard创建的类使用。
当你通过引用一个类型库来创建一个新的C++类时,ClassWizard从COleDispatchDriver派生出新类。
有关使用COleDispatchDriver的更多信息,参见下面列出的“Visual C++程序员指南”一书中的文章:
#include <afxdisp.h>
请参阅:CCmdTarget
COleDispatchDriver成员函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using Microsoft.Office.Interop.Word;
namespace WebApplication2
{
public class Totif
{
string tifPath = null;
//设置生成的tif文件路径
//路径名的命名规则为无后缀名,否则调用 varDoc.PrintOut方法时会打开打印预览窗体
public Totif(string buildTifPath)
{
this.tifPath = buildTifPath;
}
/**/
/// < summary>
/// 生成无后缀名的tif文件
/// < /summary>
/// < param name="sourceFile">源WORD文件< /param>
/// < param name="destiFile">< /param>
public void WordToTiff(object sourceFile)
{
object varMissing = Type.Missing;
try
{
// Writetxt(sourceFile.ToString());
if (sourceFile.ToString().IndexOf("~$") != -1)
{
return;
}
//生成的tif路径
object OutputFileName = (object)(tifPath+sourceFile.ToString().Split('\\')[sourceFile.ToString().Split('\\').Length -1].Split('.')[0]+".tif");
//定义Word实例对象
Microsoft.Office.Interop.Word.Application varWord = new Microsoft.Office.Interop.Word.Application();
object varFalseValue = false;
//设置Word的虚拟打印机
varWord.ActivePrinter = "Fax";
// 引用到Word文件
Microsoft.Office.Interop.Word.Document varDoc = varWord.Documents.Open(ref sourceFile, ref varMissing, ref varFalseValue,
ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing);
varDoc.Activate(); //激活文档
object PrintToFile = true;
//打印成tif文件
varDoc.PrintOut(ref varMissing, ref varMissing, ref varMissing, ref OutputFileName, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref PrintToFile,
ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing);
object saveChange = WdSaveOptions.wdSaveChanges; //关闭word文档时不打开新窗体
varDoc.Close(ref saveChange, ref varMissing, ref varMissing); //关闭word文档
varWord.Quit(ref varMissing, ref varMissing, ref varMissing); //退出Word
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
/// <summary>
/// 生成无后缀名的tif文件
/// </summary>
/// <param name="sourceFile">源Excel文件</param>
public void ExcelToTif(object sourceFile)
{
try
{
//生成的tif路径
object OutputFileName = (object)(tifPath + sourceFile.ToString().Split('\\')[sourceFile.ToString().Split('\\').Length - 1].Split('.')[0] + ".tif");
object varMissing = Type.Missing;
//定义Word实例对象
Microsoft.Office.Interop.Excel.Application varWord = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook xBook = varWord.Workbooks._Open(sourceFile.ToString(),
varMissing, varMissing, varMissing, varMissing
, varMissing, varMissing, varMissing, varMissing, varMissing,
varMissing, varMissing, varMissing);
xBook.Activate();
object PrintToFile = true;
//打印成tif文件
xBook.PrintOut(varMissing, varMissing, varMissing, varMissing,
"FAX", PrintToFile, varMissing, OutputFileName);
xBook.Close(false, false, varMissing);
varWord.Quit();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
}
//#include "stdafx.h"
#include "stdio.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
//#include "Detours.h"
#using "WebApplication2.dll"
using namespace WebApplication2;
__declspec(dllexport) int doc2tif(char*docpath)
{
Totif ^c = gcnew Totif("c:\\tiff");
System::String ^strval1 = gcnew System::String(docpath);
c->WordToTiff(strval1);
//c->Name = \"zzj\";
// printf(\"%s\\n\", c->Name);
return 0;
}
#include "HandleWord.h"
#include "msword.h"
HandleWord::HandleWord()
{
}
HandleWord::HandleWord(const char* fileName)
{
FileName=fileName;
}
HandleWord::~HandleWord()
{
}
void HandleWord::TransFormToTxt()
{
_Application WordApp;
CoInitialize(NULL);
if(!WordApp.CreateDispatch("Word.Application",NULL))
{
//AfxMessageBox("创建Word服务失败!");
exit(1);
return;
}
WordApp.SetVisible(TRUE);
COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
Documents docs=WordApp.GetDocuments();
docs.Open(COleVariant(FileName),
vFalse,vFalse,vFalse,COleVariant(""),COleVariant(""),
vFalse,COleVariant(""),COleVariant(""),
COleVariant((short)0),COleVariant("UTF-8")
,vTrue,vFalse,COleVariant((short)0),vFalse,
COleVariant(""));
_Document active_doc;
active_doc = WordApp.GetActiveDocument();
active_doc.SaveAs(COleVariant("D:\\12.txt"),
COleVariant((short)2),
vFalse, COleVariant(""),vFalse, COleVariant(""),
vFalse,vTrue,vFalse,vFalse,vFalse,COleVariant("936"),//COleVariant(L"UTF-8")
vFalse,vFalse,COleVariant((short)0),vFalse);
WordApp.Quit(vOpt, vOpt, vOpt);
}
COleDispatchDriver没有基类。
COleDispatchDriver类实现OLE自动化中的客户方。OLE调度接口为访问一个对象的方法和属性提供了途径。COleDispatchDriver的成员函数连接,分离,创建和释放一个IDispatch类型的调度连接。其它的成员函数使用变量参数列表来简化调用IDispatch::Invoke。
要获得更多的信息,参见“Win32 SDK OLE程序员参考”中的IDispatch和IDispatch::Invoke。
这个类可以直接使用,但一般来说,它只是由用ClassWizard创建的类使用。
当你通过引用一个类型库来创建一个新的C++类时,ClassWizard从COleDispatchDriver派生出新类。
有关使用COleDispatchDriver的更多信息,参见下面列出的“Visual C++程序员指南”一书中的文章:
· | 自动化客户 |
· | 自动化服务器 |
· | ClassWizard自动化支持 |
请参阅:CCmdTarget
COleDispatchDriver成员函数
数据成员编辑
m_bAutoRelease | 在执行ReleaseDispatch或析构对象时,指定是否要释放Idispatch |
m_lpDispatch | 表示指向附着在这个COleDispatchDriver的IDispatch接口的指针 |
构造编辑
COleDispatchDriver | 构造一个COleDispatchDriver对象 |
操作编辑
CreateDispatch | 创建一个IDispatch连接并将它附着于COleDispatchDriver对象 |
AttachDispatch | 将一个IDispatch连接附着于COleDispatchDriver对象 |
DetachDispatch | 分开一个IDispatch连接,但并不释放它 |
ReleaseDispatch | 释放一个IDispatch连接 |
InvokeHelper | 用于调用自动化方法的助手 |
SetProperty | 设置一个自动化特性 |
GetProperty | 获得一个自动化特性 |
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using Microsoft.Office.Interop.Word;
namespace WebApplication2
{
public class Totif
{
string tifPath = null;
//设置生成的tif文件路径
//路径名的命名规则为无后缀名,否则调用 varDoc.PrintOut方法时会打开打印预览窗体
public Totif(string buildTifPath)
{
this.tifPath = buildTifPath;
}
/**/
/// < summary>
/// 生成无后缀名的tif文件
/// < /summary>
/// < param name="sourceFile">源WORD文件< /param>
/// < param name="destiFile">< /param>
public void WordToTiff(object sourceFile)
{
object varMissing = Type.Missing;
try
{
// Writetxt(sourceFile.ToString());
if (sourceFile.ToString().IndexOf("~$") != -1)
{
return;
}
//生成的tif路径
object OutputFileName = (object)(tifPath+sourceFile.ToString().Split('\\')[sourceFile.ToString().Split('\\').Length -1].Split('.')[0]+".tif");
//定义Word实例对象
Microsoft.Office.Interop.Word.Application varWord = new Microsoft.Office.Interop.Word.Application();
object varFalseValue = false;
//设置Word的虚拟打印机
varWord.ActivePrinter = "Fax";
// 引用到Word文件
Microsoft.Office.Interop.Word.Document varDoc = varWord.Documents.Open(ref sourceFile, ref varMissing, ref varFalseValue,
ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing);
varDoc.Activate(); //激活文档
object PrintToFile = true;
//打印成tif文件
varDoc.PrintOut(ref varMissing, ref varMissing, ref varMissing, ref OutputFileName, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref PrintToFile,
ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing);
object saveChange = WdSaveOptions.wdSaveChanges; //关闭word文档时不打开新窗体
varDoc.Close(ref saveChange, ref varMissing, ref varMissing); //关闭word文档
varWord.Quit(ref varMissing, ref varMissing, ref varMissing); //退出Word
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
/// <summary>
/// 生成无后缀名的tif文件
/// </summary>
/// <param name="sourceFile">源Excel文件</param>
public void ExcelToTif(object sourceFile)
{
try
{
//生成的tif路径
object OutputFileName = (object)(tifPath + sourceFile.ToString().Split('\\')[sourceFile.ToString().Split('\\').Length - 1].Split('.')[0] + ".tif");
object varMissing = Type.Missing;
//定义Word实例对象
Microsoft.Office.Interop.Excel.Application varWord = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook xBook = varWord.Workbooks._Open(sourceFile.ToString(),
varMissing, varMissing, varMissing, varMissing
, varMissing, varMissing, varMissing, varMissing, varMissing,
varMissing, varMissing, varMissing);
xBook.Activate();
object PrintToFile = true;
//打印成tif文件
xBook.PrintOut(varMissing, varMissing, varMissing, varMissing,
"FAX", PrintToFile, varMissing, OutputFileName);
xBook.Close(false, false, varMissing);
varWord.Quit();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
}
//#include "stdafx.h"
#include "stdio.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
//#include "Detours.h"
#using "WebApplication2.dll"
using namespace WebApplication2;
__declspec(dllexport) int doc2tif(char*docpath)
{
Totif ^c = gcnew Totif("c:\\tiff");
System::String ^strval1 = gcnew System::String(docpath);
c->WordToTiff(strval1);
//c->Name = \"zzj\";
// printf(\"%s\\n\", c->Name);
return 0;
}
相关文章推荐
- 什么情况下使用多线程?
- UVA10763-交换生
- iOS开发地图计算两个地点之间的距离
- Mac 本地代码上传GitHub
- WPF 简单的动画
- thread_local_storage.obj : error LNK2001: 无法解析的外部符号 pTlsCallback
- 【LeetCode】119 Pascal's Triangle II
- php 日期转成数字
- 10003---移动前端开发之viewport的深入理解
- Android 5.0新特性,共享元素及RevealAnimator实现华丽的详情页面
- Android 常用开发工具以及 Mac 常用软件
- Wpf+数据库代码封装+策略模式封装
- css3-渐变
- tail -f 查看多个日志文件
- Linux 文件和目录的属性
- Python xrange与range的区别
- iOS —— ARC、MRC 下dealloc 方法存在的意义
- php拦截器 __get( )使用方法
- win7 vmware虚拟机 中 mac系统无法上网
- android for循环创建列表