Foxtable(狐表)用户栏目专家坐堂 → 套印问题


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

主题:套印问题

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
套印问题  发帖心情 Post By:2022/5/25 16:18:00 [显示全部帖子]

老师,麻烦看看下面代码哪里出现问题了?
Dim f1 As String = ProjectPath & "Attachments\登记表1.doc"'指定模板文件
Dim f2 As String = ProjectPath & "Reports\登记表11.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("Attachments\电子印章副本.png", False, True, 300, 0, 100, 100, obj)
s.WrapFormat.Type = MSWord.WdWrapType.wdWrapFront
app.visible = False
doc.SaveAs(Filename:=f2)
app.quit

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
套印问题2  发帖心情 Post By:2022/5/25 16:36:00 [显示全部帖子]

下列代码需要解决2个问题,一是印章的位置,希望印章位置不要固定,自动根据内容进行调整,找到“【盖章】”处替换;二是印章叠放次序问题,印章置于底层,自动衬于文字下方。

 

Dim fl As String = ProjectPath & "test.docx"

Dim fl1 As String = ProjectPath & "test1.docx"

FileSys.CopyFile(fl,fl1,True)

Dim img As String = ProjectPath & "印章1.png"

Dim app As New MSWord.Application

try

    Dim doc = app.Documents.Open(fl)

    app.Selection.Find.Text = "【盖章】"

    app.Selection.Find.Execute

    Dim pic = app.Selection.InlineShapes.AddPicture(filename:=img, linktofile:=False, savewithdocument:=True).ConvertToShape '插入图形

    With pic

        .WrapFormat.Type = MSWord.WdWrapType.wdWrapFront

        .RelativeHorizontalPosition = MSWord.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionRightMarginArea '相对于右边距

        .Left = -.Width '取图片宽度的负数

        .RelativeVerticalPosition = MSWord.WdRelativeVerticalPosition.wdRelativeVerticalPositionBottomMarginArea '相对于下边距

        .Top = -.Height '取图片高度的负数

        .LockAspectRatio = True

       .Height = 113.5 '印章大小正确

    End With

    Doc.SaveAs(Filename:= fl1)

catch ex As exception

    msgbox(ex.message)

    app.Quit

finally

End try

Dim Proc As New Process

Proc.File = fl1

Proc.Start()

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
代码  发帖心情 Post By:2022/5/25 17:44:00 [显示全部帖子]

老师,wdWrapBehind=5还是wdWrapMergeBehind=3,这个代码写在哪里

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
红色代码出错  发帖心情 Post By:2022/5/26 9:49:00 [显示全部帖子]

Dim app As New MSWord.Application
Try
    Dim fileName = ProjectPath & "test.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
        .WrapFormat.Type = MSWord.WdWrapType.wdWrapBehind      
    End With
    sel.Find.Execute 
    Dim img = ProjectPath & "印章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

错误提示:未找到类型Find的公共成员WrapFormat


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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
代码  发帖心情 Post By:2022/5/26 11:05:00 [显示全部帖子]

下列代码结果项目卡死,请老师调试一下
Dim app As New MSWord.Application
Try
    Dim fileName = ProjectPath & "test.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 = ProjectPath & "印章1.png" 
    Dim pic = sel.InlineShapes.AddPicture(img, False, True)
 pic.WrapFormat.Type = MSWord.WdWrapType.wdWrapBehind      
    pic.Height = 100 '图片高
    pic.Width = 100 '图片宽
    Doc.save
Catch ex As exception
    msgbox(ex.message)
Finally
    app.Quit
End Try

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
印章位置微调  发帖心情 Post By:2022/5/26 12:45:00 [显示全部帖子]

蓝老师,现在实现了根据内容多少印章跟随和印章位于文字的下面功能,但发现一个问题,印章偏移较大,能否实现印章位置进行微调?红色代码怎么修改
Dim app As New MSWord.Application
Try
    ' Dim fileName = "D:\问题\123.docx"
    Dim fileName = ProjectPath & "test.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 img = ProjectPath & "印章1.png" 
    Dim pic As MSWord.InlineShape = sel.InlineShapes.AddPicture(img)
    pic.Height = 100 '图片高
    pic.Width = 100 '图片宽
    '目前印章位置偏下偏右,希望进行向左和向上进行微调
    With pic     
       .RelativeHorizontalPosition = MSWord.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionRightMarginArea '相对于右边距
        .Left = -.Width + 170 '取图片宽度的负数  ’调整印章位置
       .RelativeVerticalPosition = MSWord.WdRelativeVerticalPosition.wdRelativeVerticalPositionBottomMarginArea '相对于下边距
        .Top = -.Height + 80'取图片高度的负数  ’调整印章位置        
    End With 
    
    Dim p2 = pic.ConvertToShape
    p2.WrapFormat.Type = MSWord.WdWrapType.wdWrapBehind 
    Doc.save 
Catch ex As exception
    msgbox(ex.message)
Finally
    app.Quit
End Try
[此贴子已经被作者于2022/5/26 12:52:34编辑过]

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
已解决  发帖心情 Post By:2022/5/26 16:02:00 [显示全部帖子]

谢谢蓝老师,比如我将点击“生成报表”按钮,生成报表,文件名自动存在“文档资料”列内,怎么实现?

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
已解决  发帖心情 Post By:2022/5/26 16:26:00 [显示全部帖子]

生成报表按钮代码:

Dim dr As Row = Tables("事件登记").Current

Dim tm As String = ProjectPath & "Attachments\登记表1.doc" '指定模板文件

Dim fl As String = ProjectPath & "Reports\" & "文档资料" & "\" & dr("事件ID") & dr("姓名") & "登记表.doc" '指定目标文件

Dim wrt As New WordReport(Tables("事件登记"), tm, fl) '定义一个WordReport

wrt.Build() '逐行生成报表

wrt.Show() '显示报表

Tables("事件登记").current("文档资料") = dr("事件ID") & dr("姓名") & "登记表.doc"
[此贴子已经被作者于2022/5/26 16:40:37编辑过]

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
代码  发帖心情 Post By:2022/5/26 17:04:00 [显示全部帖子]

我要找到这个文档,加盖电子印章,显示路径有问题,麻烦老师帮我看看

Dim fl As String = ProjectPath & "Reports \ 文档资料 \" & Vars ("事件ID") & Vars ("姓名") & "登记表.doc" '指定模板文件

Dim fl1 As String = ProjectPath & "Reports \ 文档资料 \ " & Vars ("事件ID") & Vars ("姓名") & "登记表(已用印).doc" '指定目标文件

FileSys.CopyFile(fl, fl1, True)

Dim img As String = ProjectPath & "电子印章1.png"

Dim app As New MSWord.Application



模板“登记表”,生成word报表,文件名为“11张三登记表”,文件名存在“文档资料”列

[此贴子已经被作者于2022/5/26 17:06:01编辑过]

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
代码  发帖心情 Post By:2022/5/26 17:17:00 [显示全部帖子]

这个代码只找到文件名为“登记表”的文件,我需要找到文件名为“11张三登记表”的文件,每个文件不一样

 回到顶部
总数 22 1 2 3 下一页