使用msword.olb操作word(3)

摘要:实现在word中插入图片,并实现图片插入类型:嵌入型、图片位于文字上方、图片位于文字下方、上下型、穿越型、紧密型、四周型

例子代码如下:

_Application oWordApp;
	Documents	 oWordDocs;
	_Document    oWordDoc;
	Selection	 oWordSel;
	Find		 oWordFind;
	Replacement  oWordRep;

	InlineShapes oWordShapes;
	InlineShape	 oWordShape;
	Options		 option;
	Shapes		 shapes;
	Shape		 shape;
	WrapFormat	 oWordWrpFormat;

	COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND,VT_ERROR);

	//创建WORD实例
	if (!oWordApp.CreateDispatch(_T("Word.Application")))
	{
		AfxMessageBox(_T("Word CreateDispatch Failed!"));
		return ;
	}

	try
	{
		oWordApp.SetVisible(TRUE);
		oWordApp.Activate();

		oWordDocs = oWordApp.GetDocuments();

		CString sFileName(_T("C:\\发文办文单.doc"));
		CString sString(_T("X380X"));
		CString sPicture(_T("C:\\380-1-1.png"));

		oWordDoc	= oWordDocs.Open(COleVariant(sFileName),vFalse,vFalse,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);
		oWordSel	= oWordApp.GetSelection();

		oWordFind	= oWordSel.GetFind();
		oWordRep	= oWordFind.GetReplacement();

		oWordFind.ClearFormatting();
		oWordFind.SetText(sString);
		oWordRep.SetText(_T(""));
		oWordFind.SetForward(TRUE);
		oWordFind.SetWrap(1);
		oWordFind.SetFormat(FALSE);
		oWordFind.SetMatchCase(FALSE);
		oWordFind.SetMatchWholeWord(FALSE);
		oWordFind.SetMatchByte(TRUE);
		oWordFind.SetMatchWildcards(FALSE);
		oWordFind.SetMatchSoundsLike(FALSE);
		oWordFind.SetMatchAllWordForms(FALSE);

		oWordDoc.Save();

		BOOL bFlag = oWordFind.Execute(COleVariant(sString),vFalse,vFalse,vFalse,vFalse,vFalse,vTrue,vTrue,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);

		oWordShapes = oWordSel.GetInlineShapes();

		option	= oWordApp.GetOptions();
		option.SetPictureWrapType((long)3);

		oWordShape = oWordShapes.AddPicture(sPicture,vFalse,vTrue,vOpt);

		shape	= oWordShape.ConvertToShape();
		oWordWrpFormat = shape.GetWrapFormat();
		long lType = oWordWrpFormat.GetType();

		oWordWrpFormat.SetType((long)7);	// 嵌入型
		//oWordWrpFormat.put_Type((long)6);	// 图片位于文字上方
		//oWordWrpFormat.put_Type((long)5); // 图片位于文字下方
		//oWordWrpFormat.put_Type((long)4); // 上下型
		//oWordWrpFormat.put_Type((long)3); // 穿越型
		//oWordWrpFormat.put_Type((long)2); // 紧密型
		//oWordWrpFormat.put_Type((long)1); // 四周型

		oWordDoc.Save();

		oWordShapes.ReleaseDispatch();
		oWordRep.ReleaseDispatch();
		oWordFind.ReleaseDispatch();
		oWordSel.ReleaseDispatch();
		oWordDoc.Close(vOpt,vOpt,vOpt);
		oWordDoc.ReleaseDispatch();
		oWordDocs.ReleaseDispatch();
	}
	catch(...){}

	try
	{
		oWordApp.Quit(vOpt,vOpt,vOpt);
		oWordApp.ReleaseDispatch();
	}
	catch(...)
	{

	}
时间: 2024-10-04 19:29:53

使用msword.olb操作word(3)的相关文章

使用msword.olb操作word(1)

摘要:使用msword.olb操作word,实现两个word文件合并,将别一个word的插入到当前文件当中 在我们程序的入口添加COM组件的初始化: if (CoInitialize(NULL) != 0) { AfxMessageBox("初始化COM支持库失败!"); exit(1); } 在程序的退出释放资源处,加入退出时释放COM组件卸载等 { CoUninitialize(); //来释放COM支持库. } 这样我们就完成了对COM支持库的代码已经完成. 下面要从Office

使用msword.olb操作word(5)

摘要: 使用msword.olb规范WORD文件字体,行间距,页边距. _Application oWordApp; Documents oWordDocs; _Document oWordDoc; Selection oWordSel; _ParagraphFormat oWordParFor; _Font oWordFont; PageSetup oWordPage; Styles oWordStyles; CString strDoc = _T("C:\\正文.doc"); CO

使用msword.olb操作word(4)

摘要:使用msword.olb实现获取doc文件的页数 _Application oWordApp; Documents oWordDocs; _Document oWordDoc; Window oWordWindow; Pane oWordPane; Pages oWordPages; COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND,VT_ERROR); BOOL bFla

使用msword.olb操作word(6)

摘要:使用msword.olb实现在word文件中插入,生成表格 例子部分代码: _Application oWordApp; Documents oWordDocs; _Document oWordDoc; Selection oWordSel; Tables oWordTables; Table oWordTable; Range oWordRange; InlineShapes oWordInlineShap; COleVariant vTrue((short)TRUE),vFalse((

使用msword.olb操作word(2)

摘要:使用msowrd.olb实现将另一个doc文件中的内容,赋值到当前打开的word文件中,并使用现当前文件的格式设置.也就是实现两个doc文件内容合并. 例子: _Application oWordApp; Documents oWordDocs; _Document oWordDoc; _Document oWordDoc_; Selection oWordSel; Selection oWordSel_; Bookmarks oWordBkmks; Bookmark oWordBkmk;

Asp.net操作Word文档,原来这么简单啊!

引用Word对象库文件  具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的! 如图 这会自动在你的应用程序文件夹中放置一个程序集(assembly)将COM接口邦定到Word. 上传并存储word文件 上传文件时首先通过上传控件找到所需上传的文件,然后获取文件的大小,最后以流的形式写入数据库 具体代码为 C#

VC操作WORD文档总结

一.写在开头 最近研究word文档的解析技术,我本身是VC的忠实用户,看到C#里面操作WORD这么舒服,同时也看到单位有一些需求,就想尝试一下,结果没想到里面的技术点真不少,同时网络上的共享资料很多,但是很多就是起了一个头没有完整的资料,因此在此记录一下,首先感谢怪兽哥哥(开源了了IOCP一整套开源库的家伙还有很多隐藏技能大家可以关注他).骨头哥(不少好资料).savageII哥(大牛)这些网友他们很有共享精神.废话不说了开始正题. 二.环境搭建 我用的VC2010,其实在VC6.0以上的版本设

【MFC/C++操作word】Word篇

MFC操作Word 一.初始化操作 1.导入类库 下面的操作基于Word2003 点击查看->建立类向导-> Add Class...\From a type Library...-> C:\Program Files\Microsoft Office\Office\MSWORD9.OLB,接下来就可以看到导入的类msword.h, msword.cpp. 2.初始化COM 找到App的InitInstance()函数,在其中添加 AfxOleInit()函数的调用,如: if (!Af

VC+++ 操作word

最近完成了一个使用VC++ 操作word生成扫描报告的功能,在这里将过程记录下来,开发环境为visual studio 2008 导入接口 首先在创建的MFC项目中引入word相关组件 右键点击 项目 --> 添加 --> 新类,在弹出的对话框中选择Typelib中的MFC类. 然后在弹出的对话框中选择文件,从文件中导入MSWORD.OLB组件. 这个文件的路径一般在C:\Program Files (x86)\Microsoft Office\Office14 中,注意:最后一层可能不一定是