博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在word里插入图片,并设置图片的格式

Posted on 2013-10-24 11:19  Dawnlight  阅读(4347)  评论(0编辑  收藏  举报

由于公司业务需要,需要在生成的word里插入图片(公司印章),仔细想了下,还是在word模板里添加一个书签,然后再该书签的位置插入图片,并设置图片的格式方便些;

代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Data.SqlClient;
 6 using System.Data;
 7 using Word=Microsoft.Office.Interop.Word;
 8 
 9 namespace ConsoleApplication1
10 {
11     class Program
12     {
13        public static void Main(string[] args)
14         {
15            object miss=System.Reflection.Missing.Value;
16            string fileName = @"E:\123.doc";
17            string picName = @"E:\1.jpg";
18            //打开word
19             Word.Application wordApp = new Word.Application();
20             Word.Document wordDoc = wordApp.Documents.Open(fileName, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss,miss);
21            //根据书签插入图片 
22            wordDoc.Bookmarks.get_Item("BM_pic").Range.Select();
23             wordApp.Selection.InlineShapes.AddPicture(picName, miss, miss, miss);
24             ///设置图片格式
25             Word.Shape s = wordDoc.InlineShapes[1].ConvertToShape();
26             s.WrapFormat.Type = Word.WdWrapType.wdWrapBehind;
27             wordDoc.Save();
28             wordApp.Quit(false,miss,miss);
29            
30         }
31     }
32 }

图片的格式都在Word.WdWrapType下,为枚举类型:

wdWrapInline  将形状嵌入到文字中。 
wdWrapNone 将形状放在文字前面。请参阅  wdWrapFront 。 
wdWrapSquare  使文字环绕形状。行在形状的另一侧延续。 
wdWrapThrough  使文字环绕形状。 
wdWrapTight  使文字紧密地环绕形状。 
wdWrapTopBottom  将文字放在形状的上方和下方。 
wdWrapBehind  将形状放在文字后面。 
wdWrapFront  将形状放在文字前面。 

 

如果引用的word2003的dll文件,则置图片浮于文字下方为如下代码

1 wordDoc.InlineShapes.Item(1).ConvertToShape().ZOrder(Office.MsoZOrderCmd.msoSendBehindText);

其中wordDoc为Document对象