能让工具代劳的,坚决不要手工做。

今天演示一下通过python对word文档插入水印图片。

首先准备1张图片


然后运行如下代码:

import win32com.client as win32 from win32com.client import constants import os doc_app = win32.gencache.EnsureDispatch('Word.Application')#打开word应用程序 doc_app.Visible = True doc = doc_app.Documents.Add() headerfooter = doc.Sections(1).Headers(constants.wdHeaderFooterPrimary) shapes = headerfooter.Shapes #在页眉插入图片 curr_path = os.getcwd() pic_path = r'%sIMG_20220123_101725.jpg'%curr_path shp = shapes.AddPicture(FileName=pic_path,LinkToFile=False,SaveWithDocument=True) #调节图片的信息 shp.Name = "WordPictureWatermark"#修改shape的名字 shp.PictureFormat.Brightness = 0.85#修改图片的显示亮度 shp.PictureFormat.Contrast = 0.15#修改图片对比度 shp.LockAspectRatio = True #保持图片比例不变 shp.WrapFormat.AllowOverlap = True# 可以与其他图形重叠 shp.WrapFormat.Side = constants.wdWrapNone#不显示边框 shp.WrapFormat.Type = 3 #将形状放在文字前面 ## 设置相对与页边距来定位 shp.RelativeHorizontalPosition = constants.wdRelativeVerticalPositionMargin# shp.RelativeVerticalPosition = constants.wdRelativeVerticalPositionMargin # 相对于页边距居中(水平和垂直) shp.Left = constants.wdShapeCenter shp.Top = constants.wdShapeCenter

最终的效果:



涉及的对象和方法:

使用shape的AddPicture方法,将图片添加到word文档中;然后,还需要调整图片的显示效果(透明度)以及位置(由于是在页眉上添加的,水印图片最开始是靠上的)