using System; using System.Collections.Generic; using System.Text; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Drawing; using System.IO; namespace Comm { public class Printer { private Font printFont; private Font titleFont; private StringReader streamToPrint; ; /// <summary> /// 设置PrintDocument 的相关属性 /// </summary> /// <param name="str">要打印的字符串</param> public void print(string str) { try { streamToPrint = new StringReader(str); printFont = ); titleFont = ); System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument(); pd.DocumentName = pd.PrinterSettings.MaximumCopies.ToString(); pd.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.pd_PrintPage); pd.PrintController = new System.Drawing.Printing.StandardPrintController(); pd.Print(); } catch (Exception ex) { throw ex; } } private void pd_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs ev) { ; ; ; float leftMargin = this.leftMargin; ; String line = null; linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics); while (count < linesPerPage && ((line = streamToPrint.ReadLine()) != null)) { ) { yPos = topMargin + (count * printFont.GetHeight(ev.Graphics)); ev.Graphics.DrawString(line, titleFont, Brushes.Black, leftMargin + , yPos, new StringFormat()); } else { yPos = topMargin + (count * printFont.GetHeight(ev.Graphics)); ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, new StringFormat()); } count++; } if (line != null) ev.HasMorePages = true; else ev.HasMorePages = false; } } }