写了一个打印文本文件的类库,功能包括:打印预览、打印。打印时可以选择打印机,可以指定页码范围。调用方法非常简单:
TextFilePrinter p = new TextFilePrinter(tbxFileName.Text);
p.View();  // 打印预览
p.Print(); // 打印文件
使用 TextFilePrinter 类的以下构造函数可以指定打印时使用的字体:
TextFilePrinter(string fileName, Encoding theEncode, Font theFont)
下面测试程序运行时的截图:

文本文件打印类库(C#)_ui

点击“预览”按钮后:

文本文件打印类库(C#)_Text_02

点击“打印”按钮后:

文本文件打印类库(C#)_ui_03

这幅图中的打印机:“Microsoft Office Doument Image Writer”是 Microsoft Office 2003 软件提供一个虚拟打印机,用来调试打印程序非常方便(使用“打印预览”也可以调试打印程序,但“打印预览”只能使用默认的打印机和默认的打印属性,也不能设置页码范围),可以设置打印属性和页码范围以及打印份数。使用它来调试打印程序,可以节省不少打印纸。为建设节约型社会作贡献 :)  

文本文件打印类库(C#)_Text_04

这幅图就是该虚拟打印机在屏幕上的显示的结果。
这里是测试程序的源代码: // PrintFile.cs - 文件打印程序

// 编译方法: csc /t:winexe PrintFile.cs TextFilePrinter.cs
using System;
 using System.Drawing;
 using System.Windows.Forms;
 using Skyiv.Util;namespace Skyiv.Ben.Test
 {
          
          
   class PrintFileForm : Form
   {
          
          
     TextBox tbxFileName;
     
     public PrintFileForm()
     {
          
          
       SuspendLayout();
       
       Button btnFileName = new Button();
       btnFileName.Text = "文件名";
       btnFileName.Location = new Point(10, 10);
       btnFileName.Size = new Size(60, 24);
       btnFileName.Click += new EventHandler(BtnFileName_Click);      Button btnPrint = new Button();
       btnPrint.Text = "打印";
       btnPrint.Location = new Point(75, 10);
       btnPrint.Size = new Size(60, 24);
       btnPrint.Click += new EventHandler(BtnPrint_Click);      Button btnView = new Button()