以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请教,有没有办法把目录树导出为一个图片或其他可见的文件  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=99645)

--  作者:nbsfy
--  发布时间:2017/4/23 16:26:00
--  [求助]请教,有没有办法把目录树导出为一个图片或其他可见的文件
[求助]请教,有没有办法把目录树导出为一个图片或其他可见的文件
--  作者:有点色
--  发布时间:2017/4/23 16:56:00
--  

参考代码

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim doc As New PrintDoc \'定义一个报表
For Each nd As WinForm.TreeNode In trv.AllNodes
    Dim rt As New prt.RenderText \'定义一个文本对象
    rt.Text = "".PadLeft(nd.Level * 8) & nd.Text
    doc.Body.Children.Add(rt) \'将文本对象加入到报表
Next
doc.Preview() \'预览


 

http://www.foxtable.com/webhelp/scr/2450.htm

 

[此贴子已经被作者于2017/4/23 16:56:20编辑过]

--  作者:nbsfy
--  发布时间:2017/4/23 20:34:00
--  
再请教下,能不能这些连线也打出来吗?
或则,就把显示的目录树当成一张图,可以吗?
[此贴子已经被作者于2017/4/23 20:35:39编辑过]

--  作者:有点色
--  发布时间:2017/4/23 20:54:00
--  

可以用截屏的方式,参考

 

Dim trv = e.Form.Controls("Treeview1").BaseControl
Dim point As Point = e.Form.Panel.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")

bit.dispose

[此贴子已经被作者于2017/5/23 18:10:10编辑过]

--  作者:凡夫俗子
--  发布时间:2017/5/23 18:06:00
--  
可以用截屏的方式,如果连续截个600张图片,则后来越来越慢。一说明memoryGraphics.在不断地吃内存,没有释放系统资源,且多次连续执行大约200来次就会报GDI 一般性错误。如果优化代码,如何回收系统资源
--  作者:有点色
--  发布时间:2017/5/23 18:10:00
--  

忘记了,要注销掉

 

Dim trv = e.Form.Controls("Treeview1").BaseControl
Dim point As Point = e.Form.Panel.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

[此贴子已经被作者于2017/5/23 18:11:58编辑过]

--  作者:xxcwdlwgo
--  发布时间:2019/10/26 17:22:00
--  
大师,我要在程序运行后,截当前窗口为图片,上述代码如何修改?
--  作者:有点蓝
--  发布时间:2019/10/26 17:41:00
--  

Dim point As Point = e.Form.Panel.PointToScreen(new point(e.form.left,e.form.top))
Dim myGraphics As Graphics = basemainform.CreateGraphics()
Dim s As new Size(e.form.width, e.form.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

--  作者:程兴刚
--  发布时间:2019/10/26 17:44:00
--  
截图?目录树过大怎么办?专业报表或者绘图板,遍历、定位、划线生成报表或自动绘图才行!
[此贴子已经被作者于2019/10/26 19:09:13编辑过]

--  作者:venking999
--  发布时间:2019/10/26 18:17:00
--  
学习