pageSetupDialog

打印设置,和对话框控件差不多的套路,把控件拖到窗口中后,会在下方显示,

然后在制作的菜单中找到打印设置,双击进入点击事件写代码

按照之前的套路,

DialogResult drr = pageSetupDialog1.ShowDialog();
if (drr == DialogResult.OK)
{ }

执行的时候会报错,,就是说问题出现在页面设置,document(类似于一个文档的对象)

在打开打印设置的对话框之前要先告诉它要设置的是什么内容,才能让他把页面设置成什么样。

这里就需要一个这个控件,必须把想要打印的内容放到这个控件上去(不认识什么textbox控件给它让他打印控件),让所有的对话框控件都来针对他进行打印

把这个控件拖过去,还是在下方,右键点击属性,在事件里面有一个Printpage,不管设置什么东西,只要进行打印就会触发这个事件

就相当于一个中介,把要打印的东西都放到这里边,打印控件就从这里面抓要打印的东西,然后每次都会触发这个事件。

在事件后面的括号里,注意一下这里   这个object类型的sender代表的事触发事件的控件, e  就是触发事件中的事件数据。

这里要用这个e  。 这个e就是这个打印事件中的数据。

实际上程序在这不会开你的文字,程序打印的其实是一张图片,所以需要一个绘制的功能,把要打印的东西绘制到这个对象上去。

在这个事件中:

Font f = new Font("黑体",20);
Brush b = new SolidBrush(Color.Red);
e.Graphics.DrawString(textBox1.Text, f, b, 20, 50);    //在这个数据上进行绘制, 绘制什么东西,(把什么东西往上画,用什么样式需要一个font类型(这里字体样式定义一个字体类型属性的变量来来控制),确定颜色和纹理需要一个Brush类型,绘制坐标点(可以通过xy坐标轴来控制)。

DrawString

然后再打印设置里面要声明   打印对象就是这个PrintDocument

private void 打印设置ToolStripMenuItem_Click(object sender, EventArgs e)
{
pageSetupDialog1.Document = printDocument1;
DialogResult drr = pageSetupDialog1.ShowDialog();
if (drr == DialogResult.OK)
{ }
} private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Font f = new Font("黑体",);
Brush b = new SolidBrush(Color.Red);
e.Graphics.DrawString(textBox1.Text, f, b, , );//在这个数据上进行绘制, 绘制什么东西,(把什么东西往上画,用什么样式需要一个font类型,(这里字体样式定义一个字体类型属性的变量来来控制),确定颜色和纹理需要一个Brush类型,绘制坐标点(可以通过xy坐标轴来控制)。
}

打印预览

private void 打印预览VToolStripMenuItem_Click(object sender, EventArgs e)
{
printPreviewDialog1.Document = printDocument1;
DialogResult dr = printPreviewDialog1.ShowDialog();
if (dr == DialogResult.OK)
{

}
会弹出一个预览打印效果的对话框

就长这样,空的因为里面没写东西。

打印  printDialog

private void 打印PToolStripMenuItem_Click(object sender, EventArgs e)
{
printDialog1.Document = printDocument1; DialogResult dr = printDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
printDocument1.Print();// 选择这个中介里面的打印方法
}
}

这里的 printDialog控件属性可以选择打开,可以选择调整什么属性。

这样打印就完成了。

打印控件:
要打印,第一步先要想到制作打印对象

PrintDocument - 默认事件

Font f = new Font("黑体",20);
Brush b = new SolidBrush(Color.Red);
e.Graphics.DrawString(textBox1.Text, f, b, 20, 50);

通过对于事件数据的绘制来制作要打印的内容

winform 打印的更多相关文章

  1. WinForm打印

    WinForm打印要用打印控件: PageSetupDialog:打印设置对话框 PrintDialog:打印对话框 PrintDocument:要打印的对象,非常重要 PrintPreviewCon ...

  2. c# winform打印excel(使用NPOI+Spire.xls+PrintDocument直接打印excel)

    前言 c#做winform程序要求生成并打印Excel报告,为了不安装Office相应组件,我选择了NPOI来生成Excel报告,用winform的PrintDocument控件来触发打印操作,而难点 ...

  3. winForm 打印预览

    自己很少写技术博客,虽然已经干程序员两年多了,winform开发,web开发都干过,不论项目大小对于.net的相关技术也是了解的,如mvc,wcf,wpf,silverlight,socekt通讯,n ...

  4. [asp.net]c# winform打印类

    using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using ...

  5. winform 打印控件

    (1)PageSetupDialog1    打印设置窗口  (2)PrintDocument     向打印机输送的对象 事件:PrintPage   对于打印的每一页都执行一次 (3)PrintP ...

  6. Winform 打印PDF顺序混乱,获取打印队列

    工作中PDF打印顺序混乱着实让我疼痛了好久,其实决绝方法非常简单,但没有想到这个点子的时候确实让我走了很多弯路 这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享出来而已,同时也做个记录,方 ...

  7. C# winform打印总结 z

    http://blog.csdn.net/jing_xin/article/details/41444063 针对BEIYANG收据打印机 BTP-R580测试通过. 操作说明:http://www. ...

  8. WinForm打印之页边距

    1.启用页边距: 默认情况下PrintDocument是不理会页边距的(MS再次让人无语...),这也是为什么有人说明明设了页边距在打印预览里却没有效果的原因. 解决办法是设置PrintDocumen ...

  9. 【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器

    一.打印控件 第一步先把打印对象搞出来. - printDocument    打印对象(将要打印的内容放到该对象里,从该对象里取内容打印) 设置他的PrintPage事件(对于要打印的每一页触发一次 ...

  10. C# winform 打印事例

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

随机推荐

  1. mobiscroll时间控件

    https://docs.mobiscroll.com/3-0-0_beta/javascript/numpad#events 这个是官方的日期插件,日历,什么效果都有,很强大的. mobiscrol ...

  2. 面试题12:打印1到最大的n位数

    题目:输入数字n,按顺序打印出从1最大的n位十进制数.比如输入3,则打印出1.2.3一直到最大的3位数即999. 考点:大数问题. 解决方案:在字符串上模拟数字加法. <剑指Offer>上 ...

  3. 2018.7.7 MBA -从专业到管理(1)—— 技术人才与的管理人才比较

    目录 1从基层员工到基层管理 专业,专长,专能,受赏识,团结同事 2从 基层管理到中层管理 重点:一专多能, 打造团队, 获取资源,对外沟通 3从中层到高层 重点:战略规划, 选拔人才 , 市场扩展

  4. grunt-2x2x

    a grunt plugin to resize and rename @2x.png(jpg,gif,) image to .png(jpg,gif) 场景:移动前端开发中,设计给的psd都是双倍图 ...

  5. 使用Snapdragon Profiler工具分析

    http://blog.csdn.net/cgx090902/article/details/73849202 Snapdragon Profiler(骁龙分析器)是一款性能分析软件,在Windows ...

  6. php中empty(), is_null(), isset()函数区别(转)

    empty(), is_null(), isset()真值表(区别)   我们先来看看这3个函数的功能描述 www.111cn.net isset 判断变量是否已存在,如果变量存在则返回 TRUE,否 ...

  7. Windows平台下gitbook的安装与使用

    最近要用到gitbook去阅读电子书,整理了一份在windows系统下安装gitbook的过程. * 安装nodejs * 安装cnpm * 搭建gitbook平台 1.在windows上安装node ...

  8. MySQL自带的性能压力测试工具mysqlslap详解

    使用语法如下:# mysqlslap [options] 常用参数 [options] 详细说明: --auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自 ...

  9. case编写的httpd简单启停脚本

    case编写的httpd简单启停脚本 #!/bin/bash HTTPD="/etc/init.d/httpd" . /etc/init.d/functions case &quo ...

  10. Java基础--CountDownLatch

    CountDownLatch是线程同步辅助类,它允许一个或多个线程wait直到countdown被调用使count为0. CountDownLatch是在java1.5被引入,存在于java.util ...