?? form1.cs
字號:
using System;
using System.IO;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Printing;
class Script
{
static public void Main(string[] args)
{
//下面代碼用于測試
SimplePrinting printer = new SimplePrinting();
//printer.PrintFile(@"C:\BOOT.ini", true);
printer.Print(@"qqqqqqqqq 3333333333 88888888", true);
}
public class SimplePrinting
{
public void PrintFile (string filePath, bool preview)
{
PrintOut(filePath, true, preview);
}
public void Print (string text, bool preview)
{
PrintOut(text, false, preview);
}
private Font printFont;
private TextReader streamToPrint;
// 每頁打印前調用此事件
private void PrintPageRoutine(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;
//計算每頁的行數
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, printFont, Brushes.Black, leftMargin, yPos, new StringFormat());
count++;
}
// 還有沒有打印內容則另打印一頁
if (line != null)
ev.HasMorePages = true;
else
ev.HasMorePages = false;
}
private void PrintOut(string data, bool file, bool prview)
{
try
{
using (streamToPrint = file ? (TextReader)new StreamReader (data) : (TextReader)new StringReader(data))
{
printFont = new Font("Arial", 10);
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(PrintPageRoutine);
if (prview)
{
PrintPreviewDialog dlg = new PrintPreviewDialog();
dlg.Document = pd;
dlg.ShowDialog();
}
else
pd.Print();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -