如何浅析C#打印和C#打印预览的实现

技术如何浅析C#打印和C#打印预览的实现如何浅析C#打印和C#打印预览的实现,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们谈到C#打印和

如何分析C#打印和C#打印预览的实现,很多新手对此不是很清楚。为了帮助大家解决这个问题,下面小编就为大家详细讲解一下。需要的人可以从中学习,希望你能有所收获。

我们来说说C#打印和C#打印预览的实现,主要包括三个部分:页面设置、打印预览和打印。打印的原理是:生成mdi文件,当系统遇到mdi时,会通过打印自动处理。所以,无论使用什么样的模板或方法;在PrintPage的事件处理中生成要打印的内容的图片就可以了!的主要支持类包含在命名空间系统中。绘图。打印并在System.Drawing.dll装配中实现。C#打印和C#打印预览的实现主要由PrintDocument类完成,还包括几个辅助类:PrintDialog、PrintPreviewDialog和PageSetupDialog。

打印类是实现打印和打印预览的中心类,实际的打印操作都是通过这个类来完成的。本类打印操作流程:

1)创建一个类实例print document prindt=new print document();

2)设置类实例的属性。

3)为这个类的打印事件添加一个事件处理函数。

4)调用该类的Print函数进行打印。

打印:printDt。print();

有三个属性与C#打印和C#打印预览的实现相关:

DefaultPageSettings:保存打印文档的默认页面设置,如大小、打印方向等,是PageSettings类型的变量。

DocumentName:用于设置PrintDocument类实例的名称。是字符串类型的变量。

打印机设置:包含打印机的设置信息,可以通过“打印”的通用对话框进行设置。

打印前应正确设置这三个属性。PageSettings类和PrinterSettings类是与PrintDocument类的属性设置相关的类。

页面设置类指定单个打印页面的设置。

PrinterSettings类包含打印机的设置信息。在这两个类中,用户可以完全控制打印机和打印页面。

C#打印和C#打印预览打印事件的处理打印文档类提供了四个事件来处理打印操作。

BeginPrint事件

此事件在调用Print方法之后和打印第一页之前触发。在这种情况下,您可以设置参数,如应用于所有页面的打印机属性和页面属性,以及使用的字体。

事件代理是PrintEventHandler,事件参数类型是PrintEvnetArgs。PrintEvnetArgs中有一个“取消”属性,可以设置为“真”以禁用打印操作。

this . printdt . BeginPrint=NewPrintEventHandler(this。beginpriting);PrivateVoidbeginprinting(对象发送方,printeventeargse){//相应处理开始打印事件}结束打印事件

打印页面时会触发此事件。在这种情况下,可以进行一些资源清理。事件代理是PrintEventHandler,事件参数类型是PrintEvnetArgs。

打印页面事件

打印每页时触发此事件,每页的打印在此事件中完成。用户必须为此事件提供一个处理程序来完成实际的打印操作。

代理类型为PrintPageEvnetHandler,事件参数类型为PrintPageEventArgs。

printDt。PrintPage=new printpageevnethandler(这。printeeverypage);privatedvoitprinteeverypage(object sender,PrintPageEventArgs){ Graphics GH=e . Graphics;//获取绘图对象//执行特定的绘图操作//例如gh。DrawingString(.);如果(仍有页面未打印)e . HasMorePages=true埃尔

se  e.HasMorePages = false;   }

◆QueryPageSettings事件

这个事件在每个PrintPage事件之前被触发,可以使用这个事件来设置打印每一个页面的页面设置。

事件代理类型为 QueryPageSettingsEventHandler,事件参数的类型为QueryPageSettingsEventArgs。事件参数中包含一个PageSettings属性。

printDt.QueryPageSettings +=   new QueryPageSettingsEventHandler(this.SetEveryPage);   private void SetEveryPage(object sneder, QueryPageSettingsEventArgs e)   {  //根据不同的页面来设置e.PageSettings属性  …  }   PrintDialog对话框 为了获取打印机的设置信息,.Net框架未用户提供了PrintDialog类。   PrintDialog printDlg = new PrintDialog();

在显示“打印”对话框之前,还需要设置它的属性。

其中最重要的一个属性就是Document属性,类型为PrintDocument.,在对话框中所做的任何设置都将保存在这个属性中。

PrinterSettings属性也用来保存用户在对话框中所做的设置。

在显示“打印”对话框之前,必须设置Document和PrinterSettings属性中的一个。

对话框中显示“打印到文件”按钮 AllowPrintToFile属性

显示选择页面范围的控件 AllowSelection属性

是否显示帮助按钮ShowHelp属性

//打印预览  //PrintPreviewDialog ppd = new PrintPreviewDialog();   PrintDocument pd = new PrintDocument();   //设置边距   Margins margin = new Margins(20, 20, 20, 20);   pd.DefaultPageSettings.Margins = margin;   ////纸张设置默认  //PaperSize pageSize = new PaperSize("First custom size", 800, 600);  //pd.DefaultPageSettings.PaperSize = pageSize;  //打印事件设置   pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);

C#打印和C#打印预览的实现的基本内容就向你介绍到这里,希望对你了解和学习C#打印和C#打印预览的实现方面的编程有所帮助。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/113754.html

(0)

相关推荐

  • JavaScript怎么实现自定义日历效果

    技术JavaScript怎么实现自定义日历效果本篇内容主要讲解“JavaScript怎么实现自定义日历效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript怎

    攻略 2021年11月8日
  • 抖音刷粉-抖音刷视频播放量

    技术抖音刷粉-抖音刷视频播放量抖音刷粉-抖音刷视频播放量
    所以如果我们找到一款产品,能够满足这样的需求,完全可以把快手作为一个卖场,因为快手本身商业模式,已经有成熟的趋势。
    抖音是目前及其火爆的短视频APP,伴随着5G时

    测评 2021年11月13日
  • 高并发场景下怎么优化加锁方式

    技术高并发场景下怎么优化加锁方式本篇内容介绍了“高并发场景下怎么优化加锁方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成

    攻略 2021年10月26日
  • ASP.NET的J#和C++举例分析

    技术ASP.NET的J#和C++举例分析这篇文章主要介绍“ASP.NET的J#和C++举例分析”,在日常操作中,相信很多人在ASP.NET的J#和C++举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法

    攻略 2021年11月29日
  • ADO.NET异步查询是什么

    技术ADO.NET异步查询是什么本篇内容介绍了“ADO.NET异步查询是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成

    攻略 2021年12月3日
  • sql无效字符执行sql语句报错的解决方法

    技术sql无效字符执行sql语句报错的解决方法本篇文章为大家展示了sql无效字符执行sql语句报错的解决方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。说起来惭愧,总是犯一些小

    攻略 2021年12月1日