我正在VB.Net(VS2008)中开发一个应用程序,它允许创建教室布局。布局是一个面板,并有子面板(座椅对象),然后使用拖放来填充座位,并显示坐在那里的人的预览。
我想将此面板导出为可打印的格式,例如jpeg,pdf等。
我已经尝试过使用CopyFromScreen,但我不能让它只输出布局面板。 (某些面板可能在出口时不在屏幕上)
我还考虑使用HTML输出每个座位作为绝对定位的div容器。然后打印HTML页面。
人们认为什么是最佳解决方案?你能提供一些例子来支持你的选择吗?
答案 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中,或打印出来。