⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printerpagesetting.cs

📁 用C#编写的一个新的打印程序
💻 CS
字号:
using System;
using System.Drawing;
using System.Drawing.Printing;

namespace GoldPrinter
{

	/// <summary>
	/// 打印方式
	/// </summary>
	public enum PrintModeFlag
	{
		/// <summary>
		/// Windows窗口打印方式
		/// </summary>
		Win
			,
		/// <summary>
		/// Web窗口打印方式
		/// </summary>
		Web	
	}



	/// <summary>
	/// 封装页面设置、打印机设置、打印预览,适合于Window和Asp.Net,Web方式下请在配置文件中增加键PrintMode及值Web。
	/// 
	/// 程序提供:周方勇;Email:flygoldfish@sina.com。
	/// 请 关 注:WebMIS.Net快速开发工具,不写一行程序开发B/S架构下MIS、OA、CRM、人事管理、档案管理等数据库网页系统。简单、实用、稳定、可靠。
	/// 下    载:
	///			 上海奥联:WWW.AlinkSoft.COM
	///			 用友华表:WWW.CellSoft.CC
	///★★★★★您可以免费使用此程序,但是请您保留此说明,以维护知识产权★★★★★
	/// </summary>
	public class PrinterPageSetting
	{
		//申明一个封装页面设置、打印机设置、打印预览的接口
		private IPrinterPageSetting _printerPageSetting;

		//打印方式
		private PrintModeFlag _printModeFlag;

		public PrintModeFlag PrintMode
		{
			get
			{
				return this._printModeFlag;
			}
			set
			{
				this._printModeFlag = value;	
				//运用了抽象模式,创建接口对象的新实例,使其指象真正的实现其接口的对象
				if (this._printModeFlag == PrintModeFlag.Win)
				{
					_printerPageSetting = new WinPrinterPageSetting();
				}
				else if(this._printModeFlag == PrintModeFlag.Web)
				{
					//注意,Web方式下的程序请密切关注WWW.AlinkSoft.COM
					_printerPageSetting = new WebPrinterPageSetting();
				}
			}
		}

		/// <summary>
		/// 获取或设置打印文档
		/// </summary>
		public PrintDocument PrintDocument
		{
			get
			{
				return _printerPageSetting.PrintDocument;
			}
			set
			{
				_printerPageSetting.PrintDocument = value;
			}
		}


		/// <summary>
		/// 一定要实例化此类后在调用打印/预览初始此变量,使之关联一个方法,目的是让具体的打印由实例化者来操作
		/// 如PrinterPageSetting1.PrintPage += new PrintPageDelegate(this.PrintPageEventHandler);
		/// </summary>
		public PrintPageDelegate PrintPage
		{
			set
			{	
				_printerPageSetting.PrintPage = value;
			}
			get
			{
				return _printerPageSetting.PrintPage;
			}
		}



		#region	构造函数
		/// <summary>
		///  封装页面设置、打印机设置、打印预览,适合于Window和Asp.Net,Web方式下请在配置文件中增加键PrintMode及值Web,也可以实例化后设置PrintMode属性为PrintModeFlag.Web。
		/// </summary>
		public PrinterPageSetting():this(null)
		{
			
		}

		/// <summary>
		///  封装页面设置、打印机设置、打印预览,适合于Window和Asp.Net,Web方式下请在配置文件中增加键PrintMode及值Web,也可以实例化后设置PrintMode属性为PrintModeFlag.Web。
		/// </summary>
		/// <param name="printDocument"></param>
		public PrinterPageSetting(PrintDocument printDocument)
		{
			string strPrintMode = "";

			//配置文件中键PrintMode
			strPrintMode = System.Configuration.ConfigurationSettings.AppSettings["PrintMode"];

			if (strPrintMode == null)
			{
				//默认为Win方式			
				strPrintMode = "Win";
			}

			//配置文件中键PrintMode的值Win/Web
			if (strPrintMode.ToUpper() == "WIN")
			{
				this.PrintMode = PrintModeFlag.Win;
			}
			else
			{
				this.PrintMode = PrintModeFlag.Web;			
			}

			/*  //配置文件中添加键值的写法
				<?xml version="1.0" encoding="utf-8" ?>
				<configuration>
					<appSettings>
							<add key="PrintMode" value="Web"/>	
					</appSettings>
				</configuration>
			*/

			_printerPageSetting.PrintDocument = printDocument;

		}
		#endregion


		/// <summary>
		/// 显示页面设置对话框,并返回PageSettings
		/// </summary>
		/// <returns></returns>
		public PageSettings ShowPageSetupDialog()
		{
			return _printerPageSetting.ShowPageSetupDialog();
		}

		/// <summary>
		/// 显示打印机设置对话框,并返回PrinterSettings
		/// </summary>
		/// <returns></returns>
		public PrinterSettings ShowPrintSetupDialog()
		{
			return _printerPageSetting.ShowPrintSetupDialog();		
		}

		/// <summary>
		/// 显示打印预览对话框
		/// </summary>
		public void ShowPrintPreviewDialog()
		{
			_printerPageSetting.ShowPrintPreviewDialog();
		}

	}//End Class
}//End NameSpace

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -