使用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");
	COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND,VT_ERROR);

	if (!oWordApp.CreateDispatch(_T("Word.Application")))
	{
		AfxMessageBox(_T("Word CreateDispatch Failed!"));
		return ;
	}

	try
	{

		oWordApp.SetVisible(TRUE);
		oWordApp.Activate();
		oWordDocs = oWordApp.GetDocuments();
		oWordDoc  = oWordDocs.Open(COleVariant(strDoc),vFalse,vFalse,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);
		oWordSel  = oWordApp.GetSelection();

		oWordSel.WholeStory();

		oWordFont = oWordSel.GetFont();
		oWordFont.SetSize(16.0f);

		oWordFont = oWordSel.GetFont();
		oWordFont.SetName(_T("仿宋_GB2312"));

		oWordDoc.Save();

		oWordParFor = oWordSel.GetParagraphFormat();

		oWordParFor.SetRightIndent(0.0f);
		oWordParFor.SetSpaceBefore(0.0f);
		oWordParFor.SetSpaceBeforeAuto(0l);
		oWordParFor.SetSpaceAfter(0.0f);
		oWordParFor.SetSpaceAfterAuto(0l);
		oWordParFor.SetLineSpacingRule(4l);
		oWordParFor.SetLineSpacing(28.0f);
		oWordParFor.SetAlignment(3l);
		oWordParFor.SetWidowControl(0l);
		oWordParFor.SetKeepWithNext(0l);
		oWordParFor.SetKeepTogether(0l);
		oWordParFor.SetPageBreakBefore(0l);
		oWordParFor.SetNoLineNumber(0l);
		oWordParFor.SetHyphenation(-1l);
		oWordParFor.SetFirstLineIndent(9.92126f);
		oWordParFor.SetOutlineLevel(10l);
		oWordParFor.SetCharacterUnitRightIndent(0.0f);
		oWordParFor.SetCharacterUnitLeftIndent(0.0f);
		oWordParFor.SetCharacterUnitFirstLineIndent(2.0f);
		oWordParFor.SetLineUnitBefore(0.0f);
		oWordParFor.SetLineUnitAfter(0.0f);
		oWordParFor.SetAutoAdjustRightIndent(-1l);
		oWordParFor.SetDisableLineHeightGrid(0l);
		oWordParFor.SetFarEastLineBreakControl(-1l);
		oWordParFor.SetWordWrap(-1l);
		oWordParFor.SetHangingPunctuation(-1l);
		oWordParFor.SetHalfWidthPunctuationOnTopOfLine(0l);
		oWordParFor.SetAddSpaceBetweenFarEastAndAlpha(-1l);
		oWordParFor.SetAddSpaceBetweenFarEastAndDigit(-1l);
		oWordParFor.SetBaseLineAlignment(4l);

		oWordDoc.Save();

		oWordFont = oWordSel.GetFont();

		if (oWordFont.GetNameFarEast() == oWordFont.GetNameAscii())
		{
			oWordFont.SetNameAscii("");
		}
		else
		{
			oWordFont.SetNameFarEast("");
		}

		oWordDoc.Save();

		oWordPage = oWordDoc.GetPageSetup();
		oWordPage.SetOrientation(0l);
		oWordPage.SetTopMargin(104.8819f);
		oWordPage.SetBottomMargin(99.2126f);
		oWordPage.SetLeftMargin(79.37008f);
		oWordPage.SetRightMargin(73.70078f);
		oWordPage.SetGutter(0.0f);
		oWordPage.SetHeaderDistance(42.51968f);
		oWordPage.SetFooterDistance(49.6063f);
		oWordPage.SetPageWidth(595.2756f);
		oWordPage.SetPageHeight(841.8898f);
		oWordPage.SetFirstPageTray(0l);
		oWordPage.SetOtherPagesTray(0l);
		oWordPage.SetSectionStart(2l);
		oWordPage.SetOddAndEvenPagesHeaderFooter(0l);
		oWordPage.SetDifferentFirstPageHeaderFooter(0l);
		oWordPage.SetVerticalAlignment(0l);
		oWordPage.SetSuppressEndnotes(0l);
		oWordPage.SetMirrorMargins(0l);
		oWordPage.SetTwoPagesOnOne(0l);
		oWordPage.SetBookFoldPrinting(0);
		oWordPage.SetBookFoldPrintingSheets(1l);
		oWordPage.SetGutterPos(0l);
		oWordPage.SetLayoutMode(2l);

		oWordDoc.Save();

		oWordPage.ReleaseDispatch();
		oWordFont.ReleaseDispatch();
		oWordParFor.ReleaseDispatch();
		oWordSel.ReleaseDispatch();
		oWordDoc.Close(vOpt,vOpt,vOpt);
		oWordDoc.ReleaseDispatch();
		oWordDocs.ReleaseDispatch();

	}
	catch(...){}

	oWordApp.Quit(vOpt,vOpt,vOpt);
	oWordApp.ReleaseDispatch();
时间: 2024-07-31 23:19:17

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

使用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(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;

使用msword.olb操作word(3)

摘要:实现在word中插入图片,并实现图片插入类型:嵌入型.图片位于文字上方.图片位于文字下方.上下型.穿越型.紧密型.四周型 例子代码如下: _Application oWordApp; Documents oWordDocs; _Document oWordDoc; Selection oWordSel; Find oWordFind; Replacement oWordRep; InlineShapes oWordShapes; InlineShape oWordShape; Option

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 中,注意:最后一层可能不一定是