将.Net Panel Control导出到图像

时间:2010-02-26 11:18:33

标签: .net html vb.net image export

我正在VB.Net(VS2008)中开发一个应用程序,它允许创建教室布局。布局是一个面板,并有子面板(座椅对象),然后使用拖放来填充座位,并显示坐在那里的人的预览。

我想将此面板导出为可打印的格式,例如jpeg,pdf等。

我已经尝试过使用CopyFromScreen,但我不能让它只输出布局面板。 (某些面板可能在出口时不在屏幕上)

我还考虑使用HTML输出每个座位作为绝对定位的div容器。然后打印HTML页面。

人们认为什么是最佳解决方案?你能提供一些例子来支持你的选择吗?

2 个答案:

答案 0 :(得分:3)

您可以使用此(msdn)将控件绘制到位图:

dim bmp as new Bitmap(panel.Width, panel.Height)
panel.DrawToBitmap(bmp, panel.clientRectangle)

然后,您可以使用您选择的任何格式保存位图。

答案 1 :(得分:0)

您谈到将Panel的内容放入图像中 如果使用WPF,则可以执行打印预览。就在一天前的StackOverflow上There was a question pertaining to this。它非常机械 - 任何“视觉”都可以发送到XPS文件,然后显示在DocumentViewer中。 DocumentViewer控件具有内置打印按钮,可以打印显示的内容。 如果您使用的是WinForms,这种方法将无效。

另一种方法是直接和动态地生成图像 有很多文章讨论ASPNET中的动态图像生成。 Here's one.我知道您不使用ASPNET,但.NET代码大致相同。您必须通过绘制Graphics对象来修改该代码并生成教室布局。然后,将其显示在Panel中,或打印出来。