Foxtable(狐表)用户栏目专家坐堂 → 请教各位前辈 利用word模板并生成的Word文件中有没有办法在指定的位置加盖电子印章呢?


  共有5077人关注过本帖树形打印复制链接

主题:请教各位前辈 利用word模板并生成的Word文件中有没有办法在指定的位置加盖电子印章呢?

帅哥哟,离线,有人找我吗?
李孝春
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
请教各位前辈 利用word模板并生成的Word文件中有没有办法在指定的位置加盖电子印章呢?  发帖心情 Post By:2020/12/30 22:01:00 [显示全部帖子]

请教各位前辈  利用word模板并生成的Word文件中有没有办法在指定的位置加盖电子印章呢?

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
想在第二支部名称(盖章)这个红色区域内加盖支部印章  可以用什么办法实现呢?

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)图片引用:http://www.foxtable.com/...  发帖心情 Post By:2020/12/31 12:03:00 [显示全部帖子]

打印指定的图片文件,文件事先复制到Images或Attachments目录下,则只需指定文件名,例如:

[&&Denmark.png,48,48]

否则需要包括路径,例如:

[&&c:\data\Denmark.png,48,48]


上述是帮助里的引用 图片方法   可以实现图片的直接显示

但是一般传统的电子印章都是加盖在文字上面的 老师有没有办法实现电子印章图片是加盖在  支部名称  年月日 那红色框对应的对顶层呢  也就是先签字了后盖章的效果



图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看


试过方法:

按照论坛里面的提示  做一个表框  但是表框无法做到顶部底部显示 实现不了印章是加盖在文字上的感觉

[此贴子已经被作者于2020/12/31 12:14:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(y2287958)在模板中预先做好印章不行吗  发帖心情 Post By:2020/12/31 12:09:00 [显示全部帖子]

这样的话 会造成非授权的空白文书印章了  

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)试试:http://www.foxtable.com/bbs/...  发帖心情 Post By:2020/12/31 14:58:00 [显示全部帖子]

参照老师提供的EXCEL模板vba插入图片的方式  
使用vba添加图片

Dim App As New MSExcel.Application
Dim Wb As MSExcel.Workbook = App.WorkBooks.Open("E:\问题\123.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
ws.Shapes.AddPicture("E:\问题\1.png", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue,0, 10, 100, 80)
ws.Shapes.AddPicture("E:\问题\abc.jpg", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue,0, 100, 100, 80)
app.visible = True

语法
ws.Shapes.AddPicture("文件路径", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue,插入点左边距插入点上边距图片宽,图片高)

怎么实现在word文件中VBA在指定的位置插入图片呢?并设置图片位于文字上方呢?

Dim App As New MSWord.Application
App.Documents.Open("C:\Users\Administrator\Desktop\公文助手20201224\Reports\1.doc")
App.Application.Selection.InlineShapes.AddPicture("C:\Users\Administrator\Desktop\dzyz\电子印章\Attachments\电子印章.jpg")
app.visible = True

上述代码实现了在word中添加图片,位置是随机的 没有指定位置  也没有设置图片位于文字上方【怎么修正呢?】

App.Application.Selection.InlineShapes.AddPicture("C:\Users\Administrator\Desktop\dzyz\电子印章\Attachments\电子印章.jpg", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue,0, 100, 100, 80)
这样的代码会报错  提示传入参数过多

此主题相关图片如下:1.png
按此在新窗口浏览图片

[此贴子已经被作者于2020/12/31 15:10:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)用法差不多    Dim fileNa...  发帖心情 Post By:2020/12/31 15:44:00 [显示全部帖子]

Dim App As New MSWord.Application
Dim doc As object = app.Documents.Open("C:\Users\Administrator\Desktop\公文助手20201224\Reports\1.doc")
Dim s = doc.Shapes.AddPicture("C:\Users\Administrator\Desktop\dzyz\电子印章\Attachments\电子印章.jpg", False, True,300, 500, 100, 100)
s.WrapFormat.Type = MSWord.WdWrapType.wdWrapFront
app.visible = True

有点蓝老师  谢谢你哈  按照你的指导方法  初步实现了在具体的位置加盖图片的操作

想进一步学习一下  有没有办法实现在页面中查找“盖章”字样  然后直接在盖章字样位置实现图片加载呢?

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)http://www.foxtable.com/bbs/dispbb...  发帖心情 Post By:2020/12/31 19:35:00 [显示全部帖子]

有点蓝老师  参照你之前的论坛知识学习
下列代码我想实现  在不创建标签的情况下  直接查找word中的文字  如果有印章  就在印章字样的位置加盖电子印章图片 且印章实现浮于文字之上
经过实际运行  没有并没有在 印章字样处加盖电子印章图片   而是默认在word文档的开头直接加盖了电子印章  且印章也没有实现浮于文字之上
代码如下:【怎么修改代码  实现印章浮于文字之上 且在印章字样之上加盖印章】
Dim app As New MSWord.Application
try
    Dim fileName = "D:\问题\123.docx"
    Dim doc As object = app.Documents.Open(fileName)
    Dim item  = "印章" '被替换的字符
    Dim sel = app.Selection
    sel .Find.ClearFormatting
    With sel .Find
        .Text = item
        .Replacement.Text = ""
        .Forward = True
        .Wrap = MSWord.WdFindWrap.wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    sel.Find.Execute
    Dim img = "D:\问题\1.png" '图片路径
    Dim pic = sel.InlineShapes.AddPicture(img, False, True)
    pic.Height=100 '图片高
    pic.Width=100 '图片宽
    Doc.save
catch ex As exception
    msgbox(ex.message)
finally
    app.Quit
End try

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)试试Dim App As New MSWord.Applicat...  发帖心情 Post By:2021/1/4 17:19:00 [显示全部帖子]

Dim f1 As String = ProjectPath & "Reports\入党申请谈话通知书.doc"
Dim f2 As String = ProjectPath & "Reports\入党申请谈话通知书【已用印】.doc"
Dim App As New MSWord.Application
Dim doc As object = app.Documents.Open(f1)
Dim item  = "盖章"
Dim sel = app.Selection
sel .Find.ClearFormatting
sel .Find.Text = item
sel.Find.Execute
Dim obj = sel.Range
Dim s = doc.Shapes.AddPicture("C:\Users\Administrator\Desktop\dzyz\电子印章\Attachments\电子印章.png", False, True,300, 0, 100, 100, obj)
s.WrapFormat.Type = MSWord.WdWrapType.wdWrapFront
app.visible = False
'doc.save(f2)
doc.save
app.quit

红色部分代码 怎么自定义保存文件位置和文件名称呢?
红色部分代码启用后 提示如图:

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)doc.SaveAs(Filename:=f2)  发帖心情 Post By:2021/1/4 18:24:00 [显示全部帖子]

OK  谢谢


当前创建了一个窗体  放了两个卡片组件  在卡片组件中使用了两个web浏览器组件   在项目中三个文件  Attachments放模板文件 Reports放模板文件生成的Word文件 Reports1\ 放用印后的文件
在点生成word按钮后 生成对应数据库文件   并显示在右边卡片页1中对应的web浏览器中
当点电子印章后,加载对应的电子印章图片生成 并显示在右边卡片页3中对应的web浏览器中
实现效果如下:(当前操作有点繁琐  且显示效率和文件生成的效率不高  个人感觉体验性有待提高)

图片点击可在新窗口打开查看此主题相关图片如下:word加盖印章.gif
图片点击可在新窗口打开查看

老师有没有办法直接 就在卡片页1中的web浏览器中  无缝显示加盖电子印章的文件呢?
根据word模板生成数据文件代码:
Dim tm As String  = ProjectPath & "Attachments\入党申请谈话通知书.doc"
Dim f1 As String = ProjectPath & "Reports\ " &  Vars("姓名")  & "入党申请谈话通知书.doc"
Dim f11 As String = ProjectPath & "Reports\ " &  Vars("姓名")  & "入党申请谈话通知书.pdf"
Dim wrt As New WordReport(tm,f1) '注意这里无需指定表名
wrt.AddDataTable("党员信息","智慧党建","Sel ect * from {党员信息} where 姓名 = '" & Vars("姓名") & "'")
wrt.Build()
wrt.SaveToPDF(f11)
wrt.Quit() '退出
FileSys.CopyDirectory (ProjectPath & "Reports\", ProjectPath & "Reports1\", True)

Dim tb2 As WinForm.TabControl = e.Form.Controls("TabControl2")
tb2.SelectedIndex=0

Dim wb2 As WinForm.WebBrowser = e.Form.Controls("WebBrowser2")
wb2.OfficeToolBar = True
wb2.Address=f1

电子印章按钮代码:
Dim f1 As String = ProjectPath & "Reports1\ " &  Vars("姓名")  & "入党申请谈话通知书.doc"
Dim f2 As String = ProjectPath & "Reports1\ " &  Vars("姓名")  & "入党申请谈话通知书【已用印】.doc"
Dim App As New MSWord.Application
Dim doc As object = app.Documents.Open(f1)
Dim item  = "盖章"
Dim sel = app.Selection
sel .Find.ClearFormatting
sel .Find.Text = item
sel.Find.Execute
Dim obj = sel.Range
Dim s = doc.Shapes.AddPicture("C:\Users\Administrator\Desktop\dzyz\电子印章\Attachments\电子印章.png", False, True,300, 0, 100, 100, obj)
s.WrapFormat.Type = MSWord.WdWrapType.wdWrapFront
app.visible = False

doc.SaveAs(Filename:=f2)
'doc.save
app.quit

打开地址代码:
Dim f2 As String = ProjectPath & "Reports1\ " &  Vars("姓名")  & "入党申请谈话通知书【已用印】.doc"
Dim tb2 As WinForm.TabControl = e.Form.Controls("TabControl2")
Dim wb2 As WinForm.WebBrowser = e.Form.Controls("WebBrowser3")
tb2.SelectedIndex=2
wb2.Address=f2



 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)卡片页1中的web浏览器地址直接设置为...  发帖心情 Post By:2021/1/5 9:36:00 [显示全部帖子]

有点蓝老师 有没有更加高效的解决思路呢   
上述我操作下来根据模板生成文件 然后显示  然后加盖印章  然后再显示用印后文书  时间有点长了点  效率不高  体验感有点不大好
不晓得是不是因为调用的是外部word文件模板结合数据库数据的原因  还是代码不够精简 导致运行效率时间比较长

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)word文档的处理一向都快不了,代码也...  发帖心情 Post By:2021/1/5 10:05:00 [显示全部帖子]

OK  谢谢老师的指导和帮助!

 回到顶部
总数 11 1 2 下一页