C#学习之旅(八)

C#学习之旅(八)

1、Windows打印技术

        Windows应用程序中提供了一组打印控件,包括PageSetupDialog、PrintDialog、PrintDocument、PrintPreviewControl和PrintPreviewDialog控件,开发程序时,开发人员可以直接使用这些控件控制打印的文本和数据格式。

    1.1、PageSetupDialog控件

        PageSetupDialog控件用于设置页面详细信息以便打印。允许用户设置边框和边距调整量、页眉和页脚以及纵向或横向打印。在介绍如何通过PageSetupDialog控件设置页面之前,要介绍该控件的一些属性,通过这些属性可以方便地对页面进行设置。

在这里插入图片描述
        注意:
    在创建PageSetupDialog类的实例时,读 | 写属性将被设置为初始值。将AllowMargins、AllowOrientation、AllowPaper、AllowPrinter、ShowNework属性设置为true,将Document、MinMargins、PageSettings、PrinterSettings属性设置为null,将ShowHelp属性设置为false。

    下面对这几种常见的属性进行详细的介绍。
    1、Document属性
    Document属性用于获取页面设置的PrintDocument。
    语法如下:
    public PrintDocument Document{get; set;}
    属性值:从中获得页面设置的PrintDocument。
    2、AllowMargins属性
    AllowMargins属性用于设置是否启用对话框的边框部分。
    语法如下:
    public bool AllowMargins{get; set;}
    属性值:如果启用了对话框的边距部分,则为true;否则为false。默认为true。
    3、AllowOrientation属性
    AllowOrientation属性用于设置是否启用对话框的方向部分(横向对纵向)。
    语法如下:
    public bool AllowOrientation{get; set;}
    属性值:如果启用了对话框的方向部分,则为true;否则为false。默认为true。
    4、AllowPaper属性
    AllowPaper属性用于设置是否启用对话框的纸张部分(纸张大小和纸张来源)。
    语法如下:
    public bool AllowPaper(get; set)
    属性值:如果启用了对话框的纸张部分,则为true;否则为false。默认为true。
    5、AllowPrinter属性
    AllowPrinter属性用于设置是否启用“打印机”按钮。
    语法如下:
    public bool AllowPrinter{get; set;}
    实例如下:

namespace Test01
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            pageSetupDialog1.Document = printDocument1;
            //启用边距
            this.pageSetupDialog1.AllowMargins = true;
            //启用对话框方向部分
            this.pageSetupDialog1.AllowOrientation = true;
            //启用对话框的纸张部分
            this.pageSetupDialog1.AllowPaper = true;
            //启用“打印机”按钮
            this.pageSetupDialog1.AllowPrinter = true;
            //显示页面设置对话框
            this.pageSetupDialog1.ShowDialog();
        }
    }
}

在这里插入图片描述

    1.2、PrintDialog控件

        PrintDialog控件用于选择打印机、选择要打印的页以及确定其他与打印相关的设置。通过PrintDialog控件可以选择全部打印、打印选定的页范围或打印选定内容。

在这里插入图片描述
        注意:
    PrintDialog类与System.Windows.Forms.PrintDialog不同,后者用于Windows窗体应用程序。

    下面对这几种常见的属性进行详解介绍。
    1、Document属性
    Document属性用于获取PrinterSettings的PrintDocument对象。
    语法如下:
    public PrintDocument Document{get; set;}
    属性值:PrintSettings的PrintDocument对象。
    2、AllowCurrentPage属性
    AllowCurrentPage属性用于设置是否显示“当前页”选项按钮。
    语法如下:
    public bool AllowCurrentPage{get; set;}
    属性值:如果显示“当前页”选项,则为true;否则为false。默认为false。
    3、AllowPrintToFile属性
    AllowPrintToFile属性用于设置是否启用“打印到文件”复选框。
    语法如下:
    public bool AllowPrintToFile{get; set;}
    属性值:如果启用“打印到文件”复选框,则为true;否则为false。默认为true。
    4、AllowSelection属性
    AllowSelection属性用于设置是否启用“选项”选项按钮。
    语法如下:
    public bool AllowSelection{get; set;}
    属性值:如果启用“选择”选项按钮,则为true;否则为false。默认为false。
    5、AllowSomePages属性
    AllowSomePages属性用于设置是否启用“页”选项按钮。
    语法如下:
    public bool AllowSomePages{get; set;}
    属性值:如果启用“页”选项按钮,则为true;否则为false。默认为false。
    实例如下:

namespace Test02
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //设置PrintDialog控件的Document属性,设置操作文档
            printDialog1.Document = printDocument1;
            //启用"打印到文件"复选框
            printDialog1.AllowPrintToFile = true;
            //显示“当前项”按钮
            printDialog1.AllowCurrentPage = true;
            //启用"选择按钮"
            printDialog1.AllowSelection = true;
            //启用"页"按钮
            printDialog1.AllowSomePages = true;
            printDialog1.ShowDialog();
        }
    }
}

在这里插入图片描述

    1.3、PrintDocument控件

        PrintDocument控件设置打印的文档。PrintDocument控件中比较常见的是控件的PrintPage事件和Print方法。PrintPage事件在需要为当前页打印的输出时发生。调用Print方法开始文档的打印进程。

    注意:
    在打印开始后,通过DefaultPageSettings属性更改页设置对正在打印的页没有任何影响。

namespace Test03
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            e.Graphics.DrawString("蝶恋花", new Font("宋体", 15), Brushes.Black, 350, 80);
            e.Graphics.DrawLine(new Pen(Color.Black, (float)3.00), 100, 185, 720, 185);
            e.Graphics.DrawString("伫倚危楼风细细,望极春愁,黯黯生天际。", new Font("宋体", 12), Brushes.Black, 110, 195);
            e.Graphics.DrawString("草色烟光残照里,无言谁会凭阑意。", new Font("宋体", 12), Brushes.Black, 110, 220);
            e.Graphics.DrawString("拟把疏狂图一醉,对酒当歌,强乐还无味。", new Font("宋体", 12), Brushes.Black, 110, 245);
            e.Graphics.DrawString("衣带渐宽终不悔。为伊消得人憔悴。", new Font("宋体", 12), Brushes.Black, 110, 270);
            e.Graphics.DrawLine(new Pen(Color.Black, (float)3.00), 100, 300, 720, 300);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("是否要预览打印文档", "打印预览", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                //开启操作系统的防锯齿功能
                this.printPreviewDialog1.UseAntiAlias = true;
                //设置要预览的文档
                this.printPreviewDialog1.Document = this.printDocument1;
                //打开预览窗口
                printPreviewDialog1.ShowDialog();
            }
            else
            {
                //调用Print方法直接打印文档
                this.printDocument1.Print();
            }
        }
    }
}

在这里插入图片描述

    1.4、PrintPrviewControl控件

        PrintPreviewControl控件用于按文档打印时的外观显示文档。该控件只为用户提供一个预览打印文档的功能,因此通常只有在希望编写自己的打印预览用户界面时才使用PrintPreviewControl控件。PrintPreviewControl控件比较重要的是Document属性,该属性用于设置要预览的文档,语法如下:
    public PrintDocument Document { get; set; }
    属性值:PrintDocument表示要预览的文档。

    注意:
    在创建PrintPreviewControl类的实例时,一些读 | 写属性被设置为初始值。如AutoZoom为true、Document为null、Columns为1、Row为0、StartPage为0。
    实例如下:

namespace Test04
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            printPreviewControl1.Document = printDocument1;
        }
        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            string str = Application.StartupPath.Substring(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\")).LastIndexOf("\\"));
            str += @"\img1.jpg";
            e.Graphics.DrawImage(Image.FromFile(str), 10,10, 800,1250);
        }
    }
}

在这里插入图片描述

    1.5、PrintPreviewDialog控件

        PrintPreviewDialog控件用于显示文档打印后的外观。该控件包含打印、放大、显示一页或多页和关闭此对话框的按钮。PrintPreviewDialog控件的常见属性和方法有Document属性,UseAntiAlias属性和ShowDialog()方法。
    1、Document属性
    该属性用于设置要预览的文档,语法如下:
    public PrintDocument Document { get; set; }
    属性值:PrintDocument表示要预览的文档。
    例如:设置PrintPreviewDialog控件的Decument属性为printDocument1,代码如下。
    printPreviewDialog1.Document = this.printDocument1; //设置预览文档
    2、UseAntiAlias属性
    该属性用于设置打印是否使用操作系统的防锯齿功能,语法如下:
    public bool UseAntiAlias { get; set;}
    属性值:如果使用防锯齿功能,则为true;否则为false。
    例如:设置UseAntiAlias属性为true,开启防锯齿功能,代码如下:
    printRreviewDialog1.UseAntiAlias = true; //设置UseAntiAlias属性为true,开启防锯齿功能。
    3、ShowDialog方法
    该方法将窗体显示为模式对话框,并将当前活动窗口设置为它的所有者,语法如下:
    public DialogResult ShowDialog ()
    返回值:DialogResult值之一。
    调用PrintPreviewDialog控件的ShowDialog()方法,显示预览窗口,代码如下。
    printPreviewDialog1.ShowDialog(); //使用ShowDialog()方法、显示预览窗口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扑腾的菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值