发布时间:2017-09-22编辑:佚名阅读(2623)
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; private int leftMargin = 0; /// <summary> /// 设置PrintDocument 的相关属性 /// </summary> /// <param name="str">要打印的字符串</param> public void print(string str) { try { streamToPrint = new StringReader(str); printFont = new Font("宋体", 10); titleFont = new Font("宋体", 15); 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 linesPerPage = 0; float yPos = 0; int count = 0; float leftMargin = this.leftMargin; float topMargin = 0; String line = null; linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics); while (count < linesPerPage && ((line = streamToPrint.ReadLine()) != null)) { if (count == 0) { yPos = topMargin (count * printFont.GetHeight(ev.Graphics)); ev.Graphics.DrawString(line, titleFont, Brushes.Black, leftMargin 10, 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; } } }
上一篇:asp.net编码转换
下一篇:C# Graphics类详解
0人
0人
0人
0人