摘要:实现在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(...) { }