Foxtable(狐表)用户栏目专家坐堂 → [求助]HTML编辑器同步删除图片


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

主题:[求助]HTML编辑器同步删除图片

帅哥哟,离线,有人找我吗?
天一生水
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/30 13:53:00 [只看该作者]

谢谢甜老师!

经测试,如果窗口中的WebBrowser控件上方还有其他控件的话(见图1),截取的图像就会出错(见图2),截图代码是不经尺寸调整的原始代码。

请老师帮助测试,是哪里的原因?

 

原始窗口:

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


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

  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:html控件截图-测试.rar


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/30 14:00:00 [只看该作者]

'截取窗口控件图片
Dim trv = e.Form.Controls("WebBrowser1").BaseControl
Dim point As Point = e.Form.controls("tabcontrol1").basecontrol.PointToScreen(trv.Bounds.Location)
Dim myGraphics As Graphics = basemainform.CreateGraphics()
Dim s As new Size(trv.width, trv.height) '截取的大小
Dim bit As New Bitmap(s.Width, s.Height , myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
memoryGraphics.CopyFromScreen(point.x, point.y, 0, 0, s) '截取的开始位置,坐标(100, 200)
bit.save("d:\test.jpg")
memoryGraphics.dispose
myGraphics.dispose
bit.dispose

Dim Proc As New Process '定义一个新的Process
Proc.File = "d:\test.jpg"   '指定要打开的文件
Proc.Start() '打开文件


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/1/30 21:08:00 [只看该作者]

控件截图没问题了。谢谢甜老师!
这个贴子中老师给的两行红色代码够我学几年的。

我又遇到新问题,我想直接在HTML编辑器中插入截图,根据添加本地图片的方法,修改了相应代码。
数据表和项目目录中都添加了相应的截图文件,但编辑窗口没有正确显示所截图片,出现一个小“叉号”,是哪里的问题?

代码如下:
Tables("数据").current("HTML_题目") = EditorHelper.BodyHTML

'******获取截图新文件*********
Dim proc As new Process      
proc.File = ApplicationPath & "capture.exe"
proc.WaitForClose = True
proc.Start
If ClipBoard.GetImage IsNot Nothing Then
    ClipBoard.GetImage.save("d:\test.jpg")
    
    '*****判断ftbqtemp临时目录是否存在
    If FileSys.DirectoryExists(ProjectPath & "\FTbqtemp") = False Then '如果目录不存在
        FileSys.CreateDirectory(ProjectPath & "\FTbqtemp")  '则创建
    End If
    
    '**********复制并重命名文件*********
    Dim wjm As String = "WYT" & CStr(Tables("数据").current.DataRow("_Identify"))
    wjm = wjm & CStr(FileSys.GetFiles(ProjectPath & "/FTbqtemp").Count + 1)
    Dim ifo As new FileInfo("d:\test.jpg")
    Dim wj = wjm & ifo.Extension
    Dim xdlj As String = "../FTbqtemp/" & wjm & ifo.Extension
    wjm = ProjectPath & "FTbqtemp/" & wjm & ifo.Extension
    FileSys.CopyFile("d:\test.jpg",wjm,True)
    
    '********调用HTML编辑器***********
    Dim wbs1 As Object = e.Form.Controls("WebBrowser1").basecontrol
    wbs1.Url = new System.Uri(ProjectPath & "kindeditor\e.HTML", System.UriKind.Absolute)
    EditorHelper = new ObjectForScriptingHelper
    wbs1.ObjectForScripting = EditorHelper
    
    '修改HTML题目
    With Tables("数据")
        .Current("HTML_题目") = .Current("HTML_题目") & "<img alt="""" src=""" & xdlj & """ /><p>"
        EditorHelper.RequestContent( .current("HTML_题目"))
        Dim ls = .Current.DataRow.lines("题目图片")
        ls.add(wj)
        .Current.DataRow.lines("题目图片") = ls
    End With
End If

Dim wbs As Object = e.Form.Controls("WebBrowser1").basecontrol
wbs.Url = new System.Uri(ProjectPath & "kindeditor\e.HTML", System.UriKind.Absolute)
EditorHelper = new ObjectForScriptingHelper
wbs.ObjectForScripting = EditorHelper

''修改HTML题目
With Tables("数据")
    EditorHelper.RequestContent( .current("HTML_题目"))
End With


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/30 22:36:00 [只看该作者]

ClipBoard.GetImage.save("d:\test.jpg")

 

改成

 

ClipBoard.GetImage.save("d:\test.png")


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


加好友 发短信
等级:童狐 帖子:257 积分:1944 威望:0 精华:0 注册:2017/11/21 15:01:00
  发帖心情 Post By:2019/10/31 11:10:00 [只看该作者]

学习了图片点击可在新窗口打开查看

 回到顶部
总数 15 上一页 1 2