C# 实现打印机功能

c# 调用打印机
2011-12-13 17:18:00| 分类: C# | 标签:调用打印机
|举报
|字号
订阅
下载LOFTER客户端
using System;using System.Collections.Generic;using System.Text;using System.Drawing;using System.IO;using System.Windows.Forms;
namespace TY_ClassLibrary{ 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.PrinterSettings.PrinterName = "SmartPrinter"; 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) { MessageBox.Show(ex.ToString()); } }
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;
} }}收起

转载于:https://www.cnblogs.com/watchfluture/p/4661785.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值