[.Net码农]PrintDocument.Print 方法

来源:互联网 发布:怎样自学办公软件 编辑:程序博客网 时间:2024/05/24 01:50

http://msdn.microsoft.com/zh-cn/library/system.drawing.printing.printdocument.print(v=vs.90).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-4

命名空间:  System.Drawing.Printing

程序集:  System.Drawing(在 System.Drawing.dll 中)


备注

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

使用 PrinterSettings.PrinterName 属性可指定用哪一台打印机来打印文档。

Print 方法在打印文档时不使用打印对话框。若要为用户提供选择打印设置的能力,则使用 PrintDialog





示例

下面的代码示例将通过命令行指定的文件打印到默认打印机。


此示例要求每一行都适合于页宽。

using System;using System.IO;using System.Drawing;using System.Drawing.Printing;using System.Windows.Forms; public class PrintingExample  {     private Font printFont;     private StreamReader streamToPrint;     static string filePath;     public PrintingExample()      {         Printing();     }     // The PrintPage event is raised for each page to be printed.     private void pd_PrintPage(object sender, PrintPageEventArgs ev)      {         float linesPerPage = 0;         float yPos =  0;         int count = 0;         float leftMargin = ev.MarginBounds.Left;         float topMargin = ev.MarginBounds.Top;         String line=null;         // Calculate the number of lines per page.         linesPerPage = ev.MarginBounds.Height  /             printFont.GetHeight(ev.Graphics) ;         // Iterate over the file, printing each line.         while (count < linesPerPage &&             ((line=streamToPrint.ReadLine()) != null))          {            yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));            ev.Graphics.DrawString (line, printFont, Brushes.Black,                leftMargin, yPos, new StringFormat());            count++;         }         // If more lines exist, print another page.         if (line != null)             ev.HasMorePages = true;         else             ev.HasMorePages = false;     }     // Print the file.     public void Printing()     {         try          {            streamToPrint = new StreamReader (filePath);            try             {               printFont = new Font("Arial", 10);               PrintDocument pd = new PrintDocument();                pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);               // Print the document.               pd.Print();            }             finally             {               streamToPrint.Close() ;            }        }         catch(Exception ex)         {             MessageBox.Show(ex.Message);        }     }     // This is the main entry point for the application.     public static void Main(string[] args)      {        string sampleName = Environment.GetCommandLineArgs()[0];        if(args.Length != 1)        {           Console.WriteLine("Usage: " + sampleName +" <file path>");           return;        }        filePath = args[0];        new PrintingExample();     } }





示例

下面的代码示例将通过命令行指定的文件打印到默认打印机。

0 0
原创粉丝点击