由于公司业务需要,需要在生成的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对象