【发布时间】:2009-04-09 13:34:35
【问题描述】:
我正在尝试使用 PrintDocument 打印出 DataGridView。在我的 PrintPage 事件处理程序中,我使用 e.Graphics 对象绘制一些网格线,然后在创建的“单元格”中打印一些文本——顺便说一句,这确实应该由 Microsoft 完成,但我离题了。
无论如何,这工作得很好。 PrintDocument 与 PrintPreviewDialog 绑定,当我打开它时,DGV 会正确呈现。用户可以单击预览对话框的打印按钮并获得打印输出。我的问题是有时 DGV 对页面来说太宽了,所以我希望能够缩放它(仅水平)以适应。我在打电话
e.Graphics.ScaleTransform(printableWidth / gridWidth)
在我真正开始绘制任何东西之前。这使预览看起来完全符合我的要求,但由于某种原因,实际的打印输出看起来与我添加缩放代码之前完全一样——如果报告太宽,它就会落在页面!
处理 PrintPage 事件以进行预览的方式与将其发送到打印机的方式之间是否存在一些差异?我的普通 PostScript 办公室激光打印机不能处理 ScaleTransform 功能吗?我认为它应该只是盲目地打印发送给它的内容,但可能涉及的处理比我想象的要多。
【问题讨论】:
标签: .net winforms datagridview printing