c# - 在 .Net Winforms 中使用打印预览

标签 c# .net winforms visual-studio-2008

我正在 .Net 2008 Winforms 中编写 C# 代码。

我创建了一个打印预览窗口来创建报告。它工作正常我可以预览报告然后打印它。唯一的问题是它不如 Office Print 预览灵活。用户不能选择默认打印机以外的打印机,也不能将打印限制在特定页面。也许我缺少一些我需要的属性。

这是我使用的部分代码:

PrintDocument pd = new PrintDocument();
            pd.PrintPage += new PrintPageEventHandler(this.PrintTheGraph);
            pd.DefaultPageSettings.Landscape = true;
            // Allocate a print preview dialog object.
            PrintPreviewDialog dlg = new PrintPreviewDialog();
            dlg.Width = 100;
            dlg.MinimumSize = new Size(375, 250);
            dlg.SetBounds(100, -550, 800, 800);
            dlg.Document = pd;
            DialogResult result = dlg.ShowDialog();

谢谢,

鲍勃

最佳答案

打印预览和打印是不同的功能,应该是不同的菜单选项。选择“打印预览”不应打印您的文档,用户很可能希望在不实际打印文档的情况下查看其文档在页面上的布局。

要打印页面并允许选择打印机设备,请使用:

PrintDialog pDialog = new PrintDialog( );
pDialog.Document = printDocument;
if (pDialog.ShowDialog( ) == DialogResult.OK) {
    printDocument.DocumentName = fileName;
    printDocument.Print( );
    }

PrintDialog 类有一个 UseEXDialog 属性,您可以使用它来显示带有打印选择、范围、n-up 打印等的扩展页面设置对话框。阿尔。处理所有这些选项需要大量工作,首先让 PrintDialog 工作。

关于c# - 在 .Net Winforms 中使用打印预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/404010/

相关文章:

c# - Unity内存问题资源图片

c# - Visual Studio 图标的含义

c# - WPF 基于样式

vb.net - ComboBox MeasureItem 事件未触发

c# - 如何检查文本值是否在包含 DataRowView 的控件的数据源中?

c# - 如何对第三方 API (OAuth) 进行线程安全调用?

c# - CORS 用于调试?

winforms - Visual Studio 2012 中的 Tab 键顺序分配对话框在哪里?

c# - Windows 证书存储

mysql - 将 MySQLGuid(来自 Devart dotConnect for MySQL)转换为 SQL 中的字符串