Windows窗体的PrintDocument组件用于设置一些属性,这些属性说明,在基于Windows的应用程序中要打印说明内容以及打印文档的能力,可将它与PrintDialog组件一起使用来控制文档打印的各个方面。

要想建立输出到打印机的输出程序,就要首先创建PrintDocument对象。

PrintDocument pd = new PrintDocument();

PrinterSettings属性:

用于获取或设置一个值,指示对文档进行打印的打印机。

DefaultPageSettings属性:

获取或设置打印纸信息,这些页设置用作要打印的所有页的默认设置

DocumentName属性:

获取或设置打印文档时要显示的文档名。

PrintController属性:

获取或设置指导打印进程的打印控制器

Container属性:

获取Icontainer接口,它包含Component类

Print方法

是最重要也是最常用的方法,它将开始打印进程,并触发PrintPage事件。在PrintPage事件中绘制将要打印的内容。

public DialogResult ShowDialog()

public void  Print()

指定打印输出的方法是处理PrintPage事件并使用PrintPageEventArgs参数中包含的Graphics对象。

使用PrinterSettings.PrinterName属性可以指定使用哪一台打印机来打印文档。Print方法在打印文档的时不使用打印对话框,若要为用户提供选择打印设置的能力,则使用PrintDialog组件。

组件的事件

PrintPage事件在需要为当前页打印输出时发生。该事件应当与PrintPageHandle参数委托的签名匹配。

public delegate void PrintPageHandler(object sender,PrintPageEventArgs e );

PrintPageEventArgs参数为打印提供必要的系统数据,相关参数的说明如下:

Cancel ,设置为true时取消打印

Graphics 用于写到打印机的graphics对象

HasMorePages 指示是否还有待打印的页面默认为False

MarginBounds 表示整个页面的矩形区域

PageBounds 表示整个页面的矩形区域

Pagesettings 待打印的页面设置

PrintPreviewDialog组件

是预先配置的对话框,用于显示PrintDocument组件在打印时的外观。

Document属性:

用于获取或设置一个值,该值指示要预览的文档。

Public PrintDocument Document {get;set}

属性值:PrintDocument ,它表示要预览的文档

UseAntiAlias 属性:

获取或设置一个值,该值指示打印是否使用操作系统的放锯齿功能。

AutoSize 获取或设置一个值,该值指示PrintViewDialog是否自动调整大小以完整显示其内容。

private void button1_Click(object sender, EventArgs e)

{

//printDocument1.Print();

if (MessageBox.Show("是否要预览打印文档", "打印预览", MessageBoxButtons.YesNo) == DialogResult.Yes)

{

this.printPreviewDialog1.UseAntiAlias = true;

//设置要预览的文档

this.printPreviewDialog1.Document = this.printDocument1;

printPreviewDialog1.ShowDialog();

}

else

{

//调用Print方法直接打印文档

this.printDocument1.Print();

}

}

PrintPreviewControl组件

用于按文档打印时的外观显示PrintDocument组件。

Zoom属性:

获取或设置一个值,该值指示页面的大小。

Public double Zoom{get;set}

值1.0指示实际大小。

private void button1_Click(object sender, EventArgs e)

{

//设置打印页面为默认打印页面

printDocument1.DefaultPageSettings.Landscape = true;

//打印文档

this.printDocument1.Print();

}

//设置打印数据

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)

{

string strPat = Application.StartupPath.Substring(0,Application .StartupPath .Substring(0,Application .StartupPath .IndexOf ("\\")).LastIndexOf ("\\"));

strPat += @"c.jpg";

e.Graphics.DrawString("阳光快乐",new Font ("宋体",50,FontStyle .Bold ),Brushes .Black,160,130 );

e.Graphics.DrawImage(Image .FromFile (strPat ),200,300,500,500);

}

//设置缩放比例尺

private void numericUpDown1_ValueChanged(object sender, EventArgs e)

{

int zoomNo;

zoomNo = Convert.ToInt32(numericUpDown1 .Value );

printPreviewControl1.Size = new Size(zoomNo *10,zoomNo *10);

printPreviewControl1.AutoZoom = true;

}

private void Form1_Load(object sender, EventArgs e)

{

this.printPreviewControl1.Document = this.printDocument1;

}

PrintDialog 组件

Windows窗体PrintDialog组件式一个预先配置的对话框,可用于在基于Windows应用程序中选择打印机、选择打印的页以及确定其他与打印相关的设置。

//启用“打印到文件”复选框

printDialog1.AllowPrintToFile = true;

//显示当前项按钮

printDialog1.AllowCurrentPage = true;

//启用选择按钮

printDialog1.AllowSelection = true;

//启用页按钮

printDialog1.AllowSomePages = true;

//要打印的文档

printDialog1.Document = this.printDocument1;

if (printDialog1 .ShowDialog ()==DialogResult.OK )

{

this.printPreviewDialog1.Document = this.printDocument1;

printDialog1.Document.Print();

//打印预览对话框设置

printPreviewDialog1.Document = this.printDocument1;

printPreviewDialog1.ShowDialog();

}

PageSetUpDialog 组件

是一个预先配置的页面对话框,用在基于Windows的应用程序设置页面信息,以便于打印。

//显示设置

this.pageSetupDialog1.Document = this.printDocument1;

//启用边距

this.pageSetupDialog1.AllowMargins = true;

this.pageSetupDialog1.AllowOrientation = true;

this.pageSetupDialog1.AllowPaper = true;

this.pageSetupDialog1.AllowPrinter = true;

//显示页面设置对话框

this.pageSetupDialog1.ShowDialog();

//设置打印预览对话框

this.printPreviewDialog1.Document = this.printDocument1;

//显示打印预览对话框

this.printPreviewDialog1.ShowDialog();

//使用打印控件打印

this.printDocument1.Print();

Windows 打印控件的更多相关文章

  1. 【打印】windows打印控件,Lodop.js介绍

    1.Lodop.js这插件很强大,目前仅支持windows系统 2.使用原生javascript编写 3.lodop支持客户端安装,c-lodop支持服务器端安装 4.无论客户端还是服务器端,都必须是 ...

  2. 网页WEB打印控件制作-开放源码

    在WEB系统中,打印的确是比较烦人的问题,如果我们能制作一个属于自己的自定义的打印插件,那么我们在后续自定义打印的时候能随心所欲的控制打印,这样的效果对于程序员来说是非常开心的一件事件,本文将自己开发 ...

  3. winform 对话框控件,打印控件

    1.文件对话框(FileDialog) 它又常用到两个: 打开文件对话框(OpenFileDialog) 保存文件对话框(SaveFileDialog) 2.字体对话框(FontDialog) 3.颜 ...

  4. C# ie通过打印控件点打印,总是弹出另存为xps的对话框

    用的是lodop打印控件,点打印后,总是弹出另存为xps的对话框,后来在网上查到可能是把windows自带的Microsoft XPS Document Writer设为默认打印机的原因. 但现在没有 ...

  5. 在.net Core 使用PDF模板文件生成PDF文件,代替WEB打印控件!

    这几天找WEB打印控件,要么收费的,要么免费的只能在IE里用! 我只想简单的打个标签纸!百度2天,看到一老兄说可以用PDF,然后又开始百度..找到了一篇文章 http://www.jianshu.co ...

  6. wpf 深度复制控件,打印控件

    原文:wpf 深度复制控件,打印控件 <Window x:Class="WpfApp2.MainWindow" xmlns="http://schemas.micr ...

  7. WPF打印控件内容

    当我们想打印控件内容时,如一个Grid中的内容,可以用WPF中PrintDialog类的PrintVisual()方法来实现 界面如下: XAML代码如下 <Grid> <Grid. ...

  8. vue使用lodop打印控件实现浏览器兼容打印

    前言 此控件直接进行打印底部会有水印,通过官网购买可以解决: 如不想购买,可先执行预览,弹出预览框进行打印: 需要用到的js文件和api文档附后,请注意查看. 首先需要在局部或全局引入LodopFun ...

  9. 基于MVC4+EasyUI的Web开发框架经验总结(16)--使用云打印控件C-Lodop打印页面或套打报关运单信息

    在最新的MVC4+EasyUI的Web开发框架里面,我整合了关于网购运单处理的一个模块,其中整合了客户导单.运单合并.到货扫描.扣仓.出仓.查询等各个模块的操作,里面涉及到一些运单套打的操作,不过由于 ...

随机推荐

  1. VG vs SS WE vs IM [20160815]

    上单:慎,纳尔,艾克,艾瑞莉娅,普朗克 中单:弗拉基米尔,玛尔扎哈,卡尔玛,丽桑卓,索尔,崔斯特,辛德拉 打野:雷克赛,奈德丽,古拉加斯,伊莉丝,赫卡里姆,玛尔扎哈 下路:艾希,克格莫,烬,希维尔,布 ...

  2. C预处理和C库

    #include <stdio.h> #define MAN(x) "n"##x int main(void) { printf("%s",MAN( ...

  3. [poj1860] Currency Exchange (bellman-ford算法)

    题目链接:http://poj.org/problem?id=1860 题目大意:给你一些兑换方式,问你能否通过换钱来赚钱? 使用ford算法,当出现赚钱的时候就返回YES,如果不能赚钱,则返回NO ...

  4. 在.NET中使用EPPlus生成Excel报表 .

    --摘抄自:http://blog.csdn.net/zhoufoxcn/article/details/14112473 在开发.NET应用中可能会遇到需要生成带图表(Chart)的Excel报表的 ...

  5. Web服务器禁止range请求

    range: 请求一般是多线程下载的客户端程序使用 在httpd.conf中增加下面的配置,可以禁止range请求: RewriteEngine onRewriteCond %{HTTP:Range} ...

  6. System.exit(1)

    用于退出java的虚拟机,也是finally块中语句不被执行的唯一情况

  7. ASP.NET Page对象各事件执行顺序(转)

    很久没写 asp.net 的东西了,search 了一下 page 的事件执行顺序,找到如下的东西,仅仅做记录用 Page.PreInit 在页初始化开始时发生 Page.Init 当服务器控件初始化 ...

  8. FW: Chef集中管理工具实践之 (1) 环境部署

    本文转载:http://heylinux.com/archives/2208.html Chef集中管理工具实践之 (1) 环境部署 目录结构Chef集中管理工具实践之 (0) 什么是ChefChef ...

  9. eclipse下tomcat添加部署Module,Web名称与项目名称不一致的解决方法

    问题描述: 使用eclipse,因为某种原因项目名称修改后,使用tomcat进行web发布时,选择“Add and Remove Projects...”或双击打开选择Modules选项卡后点击“An ...

  10. maven 打包 spring 项目

    在程序中使用到了springframework控件(主要是为了使用Mybatis-spring操作数据库,省事). 使用maven管理项目的构建,现在需要生成一个jar包,包含所有依赖的jar包,并可 ...