以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  word文档在指定页插入图片  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=174447)

--  作者:lxhmax
--  发布时间:2022/1/16 4:10:00
--  word文档在指定页插入图片
请问老师,word文档有多页时,如何在每一页都加上图片?或者是指定页插入图片

Dim fl As String = ProjectPath & "1.docx"
Dim yz As String = ProjectPath & "yz.png"
Dim App As New MSWord.Application
Dim doc As object = app.Documents.Open(fl)
Dim s = doc.Shapes.AddPicture(yz, False, True,60, 425, 110, 110)
s.WrapFormat.Type = MSWord.WdWrapType.wdWrapFront
app.visible = True

--  作者:有点蓝
--  发布时间:2022/1/16 20:55:00
--  
使用模板:http://www.foxtable.com/webhelp/topics/2890.htm
--  作者:lxhmax
--  发布时间:2022/1/17 9:18:00
--  
老师,因为图片是附在文字上方的,还有是在侧边的位置,这个模板看不懂怎么操作,麻烦老师看下怎么改下面的代码
Dim fl As String = ProjectPath & "1.docx"
Dim yz As String = ProjectPath & "y2.png"

\'请问老师如何获取doc的全部页数pages?
\'根据页数分解骑缝章
Dim img = getimage(yz)
Dim pages As Integer = 3
Dim page As Integer = 2
Dim imgw As Integer = img.width / pages
For i As Integer = 1 To pages
    Dim bmp As new bitmap(imgw, img.height) \'宽高
    Dim g = graphics.fromimage(bmp)
    Dim x As Integer = (i-1)*imgw \'开始坐标
    Dim y As Integer = 0 \'开始坐标
    Dim w As Integer = bmp.width
    Dim h As Integer = bmp.height
    g.DrawImage(img, new Rectangle(0, 0, w, h), new Rectangle(x, y, w, h), GraphicsUnit.Pixel)
    bmp.save(ProjectPath & "骑缝章\\" & i & ".png")
    bmp.dispose
Next

Dim App As New MSWord.Application
Dim doc As object = app.Documents.Open(fl)
\'第一页跟最后一页都要插入完整的印章,这个如何修改?
Dim s = doc.Shapes.AddPicture(yz, False, True,60, 425, 110, 110)  
s.WrapFormat.Type = MSWord.WdWrapType.wdWrapFront

\'每一页都要贴上骑缝章,这个如何修改
Dim s2 = doc.Shapes.AddPicture(ProjectPath & "骑缝章\\1.png", False, True,520, 250, 110/pages , 110)
s2.WrapFormat.Type = MSWord.WdWrapType.wdWrapFront
\'Dim s3 = doc.Shapes.AddPicture(ProjectPath & "骑缝章\\2.png", False, True,520, 250, 110/pages , 110)
\'s3.WrapFormat.Type = MSWord.WdWrapType.wdWrapFront
\'Dim s4 = doc.Shapes.AddPicture(ProjectPath & "骑缝章\\3.png", False, True,520, 250, 110/pages , 110)
\'s4.WrapFormat.Type = MSWord.WdWrapType.wdWrapFront
app.visible = True
[此贴子已经被作者于2022/1/17 9:20:22编辑过]

--  作者:有点蓝
--  发布时间:2022/1/17 9:26:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=172360&skin=0
--  作者:lxhmax
--  发布时间:2022/1/17 9:28:00
--  
Dim App As New MSWord.Application
Dim doc As object = app.Documents.Open(fl)
\'第一页跟最后一页都要插入完整的印章,这个如何修改?
Dim s = doc.Shapes.AddPicture(yz, False, True,60, 425, 110, 110)  
s.WrapFormat.Type = MSWord.WdWrapType.wdWrapFront

\'每一页都要贴上骑缝章,这个如何修改
Dim s2 = doc.Shapes.AddPicture(ProjectPath & "骑缝章\\1.png", False, True,520, 250, 110/pages , 110)
s2.WrapFormat.Type = MSWord.WdWrapType.wdWrapFront

--  作者:有点蓝
--  发布时间:2022/1/17 9:32:00
--  
第一页跟最后一页单独处理,插入完整的印章图片不就行了

中间其它页按正常方式处理
Dim pages As Integer = 获取的页数 - 2

--  作者:lxhmax
--  发布时间:2022/1/17 9:52:00
--  
还请老师指教怎么单独处理?
把word安页数拆分成若干个文档,然后在处理,最后又合并在一起吗?
还是不懂怎么编写这样的代码

--  作者:有点蓝
--  发布时间:2022/1/17 10:05:00
--  
dim 页数 = doc.ComputeStatistics(Microsoft.Office.Interop.Word.WdStatistic.wdStatisticPages, Nothing)

第一页
        Dim myRange = doc.GoTo(1, Which:=1, Count:=1)
        doc.Shapes.AddPicture(“完整图片”, False, True, 左边距,上边距,图片宽,图片高,myRange)
中间页
For i As Integer = 2 To 页数-1
处理中间页
next
最后页
        Dim myRange = doc.GoTo(1, Which:=1, Count:=页数)
        doc.Shapes.AddPicture(“完整图片”, False, True, 左边距,上边距,图片宽,图片高,myRange)

--  作者:lxhmax
--  发布时间:2022/1/17 10:41:00
--  
可以了,谢谢老师