我的应用程序显示分组的线性数据。表示相当简单。 UI 分为几个 GroupBox,其中数据由 TextBox 和 Label 显示。
现在,我想以一种简单的方式打印数据。我的想法是只打印 GroupBoxes 并调整对齐方式,使打印页面看起来更好一些。
可以为 WinForms 推荐哪些方法或是否有最佳实践?是否存在任何预定义的辅助类?
最佳答案
您可以使用 Control.DrawToBitmap()
方法为控件生成图像,您可以使用 PrintDocument.PrintPage
事件处理程序将其绘制到纸上 e.Graphics.DrawImage()
.
从长远来看,这不是“最佳实践”。打印机的分辨率远高于显示器。通常每英寸 600 点与 96 点。为避免将控件变成邮票,您必须将位图重新缩放 6 倍。PrintDocument
类默认这样做。结果是颗粒状的,尤其是当以典型的一臂距离观看时,文本看起来很差。您只能使用 Graphics.DrawString()
获得好看的文本。换句话说,编写代码而不是复制位图。有大量可用的报告生成器可帮助您避免编写代码的乏味工作。
关于c# - 如何打印表格的特定区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6402523/