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

时间:2022-03-06 17:43:46

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

代码如下:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using Word=Microsoft.Office.Interop.Word; namespace ConsoleApplication1
{
class Program
{
public static void Main(string[] args)
{
object miss=System.Reflection.Missing.Value;
string fileName = @"E:\123.doc";
string picName = @"E:\1.jpg";
//打开word
Word.Application wordApp = new Word.Application();
Word.Document wordDoc = wordApp.Documents.Open(fileName, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss,miss);
//根据书签插入图片
wordDoc.Bookmarks.get_Item("BM_pic").Range.Select();
wordApp.Selection.InlineShapes.AddPicture(picName, miss, miss, miss);
///设置图片格式
Word.Shape s = wordDoc.InlineShapes[].ConvertToShape();
s.WrapFormat.Type = Word.WdWrapType.wdWrapBehind;
wordDoc.Save();
wordApp.Quit(false,miss,miss); }
}
}

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

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

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

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

其中wordDoc为Document对象