码迷,mamicode.com
首页 > 其他好文 > 详细

使用msword.olb操作word(5)

时间:2015-05-27 14:03:56      阅读:1254      评论:0      收藏:0      [点我收藏+]

标签:word   字体   msword.olb   bookmark   excel   

摘要: 使用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();


使用msword.olb操作word(5)

标签:word   字体   msword.olb   bookmark   excel   

原文地址:http://blog.csdn.net/weikangc/article/details/46044859

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!