word中批量添加印章、签名图片

在工作中老是碰到需要在word中每页添加印章图片的情况,想将电子印章图片加到word中,看起来像真的盖的一样^_^,尤其是投标之类的时候。虽然可以通过水印、或者背景等操作来处理,但是位置太单一了,太假o(*^@^*)o,还一种方法就是手动添加、复制、旋转角度,如果几页还好,如果几百上千页,就坑爹了,如果还要旋转角度就更惨………………

后面琢磨、研究了下,其实可以通过word自带的vba功能进行开发实现,通过不断的百度,以下代码可以可以搞定,不能直接用,大家可以参考修改。

Set pic = ActiveWindow.Selection.InlineShapes.AddPicture(fileName:=url, LinkToFile:=False, SaveWithDocument:=True) 'url是图片的地址
                
                Set oShape = pic.ConvertToShape
                '           将图片移动到正中间,以下取得的值单位都是磅
                iwidth = oShape.Width '获取图片自身的宽度
                iheight = oShape.Height '获取图片自身的宽度
                
                oShape.RelativeHorizontalPosition = wdRelativeHorizontalPositionMargin '图片的水平位置相对于边距
                oShape.Left = (pWidth - nleft - nright - iwidth) / 2
                
                oShape.RelativeVerticalPosition = wdRelativeVerticalPositionMargin ' 图片的垂直位置
                oShape.Top = (pheight - ntop - nbottom - iheight) / 2
                            
                If addStampShow.option_place2 = True Then '是否选中在正中间,再移动
                     Randomize
'                     xleft = Int((Rnd * (50 - 2)) + 2) '生成2到50的随机数
                     xleft = Int((Rnd * 100) - 50) '生成-50到50的随机数
                     oShape.IncrementLeft xleft '向右移动了100,负数代表向左移动;LEFT  和TOP 设为,0,0  那么他们就会跑到,光标位置
                     
                     Randomize
                     xtop = Int((Rnd * 100) - 50) '生成-50到50的随机数
                     oShape.IncrementTop xtop '正数向下,负数向上
                End If

当然,如果大家不想开发,也可以直接用已开发好的,下载地址:

http://www.booleanda.cc​​​​​​​

这里面有可以直接插入图片功能,而且可以设置页面范围、是否旋转等

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
您好,关于使用POI进行word标签替换及添加印章签名图片方案的问题,可以分为以下三个步骤来实现: 1. 标签替换 使用POI进行word标签替换可以使用`XWPFParagraph`类的`replaceText`方法,代码示例如下: ``` String oldText = "标签"; String newText = "替换后的文本"; for (XWPFParagraph paragraph : paragraphs) { List<XWPFRun> runs = paragraph.getRuns(); for (XWPFRun run : runs) { String text = run.getText(0); if (text != null && text.contains(oldText)) { text = text.replace(oldText, newText); run.setText(text, 0); } } } ``` 其`paragraphs`代表要替换标签的段落列表,`oldText`代表要替换的标签文本,`newText`代表替换后的文本。 2. 添加印章图片 使用POI添加印章图片可以使用`XWPFRun`类的`addPicture`方法,代码示例如下: ``` String filePath = "印章图片路径"; FileInputStream fis = new FileInputStream(filePath); byte[] pictureBytes = IOUtils.toByteArray(fis); fis.close(); XWPFRun run = paragraph.createRun(); int format = XWPFDocument.PICTURE_TYPE_PNG; String fileName = "印章图片名称"; run.addPicture(new ByteArrayInputStream(pictureBytes), format, fileName, Units.toEMU(width), Units.toEMU(height)); ``` 其`paragraph`代表要插入印章的段落对象,`width`和`height`分别代表印章图片的宽度和高度。 3. 添加签名图片 使用POI添加签名图片可以使用`XWPFRun`类的`addPicture`方法,代码示例如下: ``` String filePath = "签名图片路径"; FileInputStream fis = new FileInputStream(filePath); byte[] pictureBytes = IOUtils.toByteArray(fis); fis.close(); XWPFRun run = paragraph.createRun(); int format = XWPFDocument.PICTURE_TYPE_JPEG; String fileName = "签名图片名称"; run.addPicture(new ByteArrayInputStream(pictureBytes), format, fileName, Units.toEMU(width), Units.toEMU(height)); ``` 其`paragraph`代表要插入签名的段落对象,`width`和`height`分别代表签名图片的宽度和高度。 以上是使用POI进行word标签替换及添加印章签名图片方案的实现方法,希望能对您有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shaochuan_2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值