一个平凡菜鸟的C#琐碎总结 ---- C#打印功能的实现

C#简单打印功能的实现

一、C#实现打印功能操作通常包括以下四个功能。

1、打印设置 设置打印机的一些参数比如更改打印机驱动程序等。

2、页面设置 设置页面大小纸张类型等。

3、打印预览 类似于word中的打印预览。

4、打印。下面就向你具体介绍操作的步骤。

二、实现打印功能的步骤

第一步:(添加事件):若实现打印功能首先构造PrintDocument对象添加打印事件:

PrintDocument printDocument; 

private void InitializeComponent()  

{  

printDocument=new PrintDocument(); 

printDocument.PrintPage +=  new PrintPageEventHandler (this.printDocument_PrintPage);  

}  

第二步:实现第一步的的事件委托方法(printDocument_PrintPage

实现此方法过程中用到了StringReader类,必须先定义,private StringReader LineReader = null;//字符串流对象,一行一行读取文本

private void printDocument1_PrintPage(object sender, PrintPageEventArgse)

        {

 

            Graphics g = e.Graphics; //获得绘图对象 

            float linesPerPage = 0; //页面的行号 

            float yPosition = 0; //绘制字符串的纵向位置 

            int count = 0; //行计数器 

          

            float leftMargin = e.MarginBounds.Left; //左边距 

            float topMargin = e.MarginBounds.Top; //上边距 

            string line = null; //行字符串 

            Font printFont = this.richTextBox1.Font;//当前的打印字体

 

            SolidBrushmyBrush = new SolidBrush(Color.Black);//刷子

 

          linesPerPage = e.MarginBounds.Height / printFont.GetHeight(g); //每页可打印的行数 

            //逐行的循环打印一页 

            while (count < linesPerPage && ((line = LineReader.ReadLine())!= null))

            {

               yPosition = topMargin + (count * printFont.GetHeight(g));

               g.DrawString(line, printFont, myBrush, leftMargin, yPosition, new StringFormat());

               count++;

            }

            if (line != null)

               e.HasMorePages = true;

            else

               e.HasMorePages = false;

        }

第三步:打印设置功能的实现

打印设置,构造打印对话框,将对话框中设置的Document属性赋给printDocument这样会将用户的设置自动保存到printDocument的PrinterSettings属性中

protectedvoid FileMenuItem_PrintSet_Click(object sender,EventArgs e)  

{  

PrintDialog printDialog = new PrintDialog();  

printDialog.Document = printDocument; 

printDialog.ShowDialog();  

第四步:打印预览功能实现

此功能和打印设置原理相同,调出printPreviewDialog对话框即可,但值得注意的是必须实例化StringReader对象,lineReader = new StringReader(textBox.Text)。 

 

protected void FileMenuItem_PrintView_Click( object sender,EventArgs e)  

{  

 PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();  

 printPreviewDialog.Document = printDocument; 

 lineReader = new StringReader(textBox.Text);  

 try 

{  

printPreviewDialog.ShowDialog();  

}  

catch(Exception excep)  

{  

MessageBox.Show(excep.Message,"打印预览出错", MessageBoxButtons.OK, 

 MessageBoxIcon.Error);  

}  

第五步:就是打印功能的实现,和打印预览注意的地方一样注意实例化StringReader对象

protected void FileMenuItem_Print_Click(object sender,EventArgs e)  

{  

 PrintDialog printDialog = new PrintDialog();  

 printDialog.Document = printDocument; 

 lineReader = new StringReader(textBox.Text);  

 if (printDialog.ShowDialog() == DialogResult.O

 {  

try 

{  

printDocument.Print();  

}  

catch(Exception excep)  

 {  

MessageBox.Show(excep.Message, "打印出错",  

 MessageBoxButtons.OK,  

 MessageBoxIcon.Error);  

printDocument.PrintController.OnEndPrint(new PrintEventArgs());  

 }  

}  

 

注:文中的代码大部分引用互联网上的,本人仅作了总结归纳,及注意事项等等。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部