asp.net中C# 自定义打印类程序

 代码如下 复制代码

 

public class PrintInfo
    {
        public string PortName { get; set; }
        public string DepartureTime { get; set; }
        public string AMPM { get; set; }

        PrintDocument document = new PrintDocument();
        private int pageWidth = 302;
        private int pageHeight = 530;

        public PrintInfo()
        {       
        PortName=“Test Port”;
       DepartureTime="11:30";
        AMPM="上午";      
            document.BeginPrint += new PrintEventHandler(document_BeginPrint);
            document.PrintPage += new PrintPageEventHandler(document_PrintPage);
            document.EndPrint += new PrintEventHandler(document_EndPrint);
        }

        private void document_EndPrint(object sender, PrintEventArgs e)
        {
           
        }

        private void document_BeginPrint(object sender, PrintEventArgs e)
        {

        }

        private void document_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            if (DepartureTime != null)
            {
                //Logo
                Bitmap imageLogo = new Bitmap(System.AppDomain.CurrentDomain.BaseDirectory + @"Resourcelogo.bmp");
                e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
                e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
                e.Graphics.CompositingQuality = CompositingQuality.HighQuality;
                e.Graphics.DrawImage(imageLogo, 5, 10, 292, 131);

                //Line
                e.Graphics.DrawLine(new Pen(Brushes.Black, 3), 12, 166, 291, 166);

                //Port Name
                Font strFont = new Font("宋体", 18);
                e.Graphics.DrawString(PortName, strFont, Brushes.Black,
                (float)pageWidth / 2 - e.Graphics.MeasureString(PortName, strFont).Width / 2 + 1, 198);

                //Departure Time
                strFont = new Font("宋体", 50, FontStyle.Bold);
                e.Graphics.DrawString(DepartureTime, strFont, Brushes.Black,
               (float)pageWidth / 2 - e.Graphics.MeasureString(DepartureTime, strFont).Width / 2, 248);

                //AMPM
                e.Graphics.DrawString(AMPM, strFont, Brushes.Black,
               (float)pageWidth / 2 - e.Graphics.MeasureString(AMPM, strFont).Width / 2, 320);

                //Line
                e.Graphics.DrawLine(new Pen(Brushes.Black, 3), 12, 419, 291, 419);
               //Thankyou and print time
                strFont = new Font("宋体", 13, FontStyle.Bold);
                printTxt = "Thank You";
                e.Graphics.DrawString(printTxt, strFont, Brushes.Black, 12, 481);
                strFont = new Font("宋体", 8);
                printTxt = DateTime.Now.ToString("MM/dd/yyyy hh:mmt\M");
                e.Graphics.DrawString(printTxt, strFont, Brushes.Black, 184, 487);

            }
        }

        public void PrintDocument()
        {
            document.DefaultPageSettings.PaperSize = new PaperSize("Custum", pageWidth, pageHeight);
            PrintController printController = new StandardPrintController();
            document.PrintController = printController;
            //System.Windows.Forms.PrintPreviewDialog printPreview = new System.Windows.Forms.PrintPreviewDialog();
            //printPreview.Document = document;
            //printPreview.ShowDialog();

            document.Print();
        }

时间: 2024-07-31 04:01:43

asp.net中C# 自定义打印类程序的相关文章

ASP.NET中实现根据匿名类、datatable、sql生成实体类

  这篇文章主要介绍了ASP.NET中实现根据匿名类.datatable.sql生成实体类,这个小小工具类非常实用,使用起来也很方便,需要的朋友可以参考下 在开发中可能会遇到这几种情况: 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要先建一个类 ,头痛 4.如果通过代码生成器要写模版,需要安装或者不想生成一堆不用的类 为了解决上面的不便之处,我封装了一个实体生成类,可以扔到

ASP.Net中保护自定义的服务器控件

自定义服务器控件是扩展 ASP.NET Web 服务器控件的功能的一种方式.下文提供了针对自定义服务器控件的用户和开发人员的基本安全准则.有关创建自定义服务器控件的更多信息,请参见开发自定义 ASP.NET 服务器控件. IDE(如 Microsoft Visual Studio 2005)简化了自定义控件的使用及开发.但是,无论使用哪一 IDE,下面列出的安全准则均适用. 有关 ASP.NET Web 应用程序安全性的常规信息,请参见 ASP.NET Web 应用程序安全性. 针对自定义服务器

ASP.NET中保护自定义的服务器控件_实用技巧

自定义服务器控件是扩展 ASP.NET Web 服务器控件的功能的一种方式.下文提供了针对自定义服务器控件的用户和开发人员的基本安全准则.有关创建自定义服务器控件的更多信息,请参见开发自定义 ASP.NET 服务器控件. IDE(如 Microsoft Visual Studio 2005)简化了自定义控件的使用及开发.但是,无论使用哪一 IDE,下面列出的安全准则均适用. 有关 ASP.NET Web 应用程序安全性的常规信息,请参见 ASP.NET Web 应用程序安全性. 针对自定义服务器

ASP.NET中实现根据匿名类、datatable、sql生成实体类_实用技巧

在开发中可能会遇到这几种情况: 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要先建一个类 ,头痛 4.如果通过代码生成器要写模版,需要安装或者不想生成一堆不用的类    为了解决上面的不便之处,我封装了一个实体生成类,可以扔到程序里面任意调用 封装类: using System; using System.Collections.Generic; using System.

艾伟_转载:ASP.NET中写自定义的Config Provider

一.写作前题     我们用ASP.NET做项目开发的时候,配置Config文件那是经常的事情,VS.NET的Config文件提供了很多节,但是往往提供的这些配置信息还不能够完全满足我们的项目开发需求,而且微软正是考虑到这方面的因素,他允许用户自定义Configuration的相关配置内容.本文就此写了一些实例,希望对大家有所帮助.   二.本文内容   1.实现web.config中的自定义2.对自定义节的使用3.本文总结 三.实现Web.Config中自定义节     废话不多说,直接说主题

QTP中使用自定义vbs类

发现直接在resource中加载含有calss的vbs文件,QTP无法识别类,导致脚本中无法new类对象. 解决办法有四种: 1.直接在action脚本中定义类,然后action中任何地方都可以实例化类 2.用executefile引入类定义文件,然后action中任何地方都可以实例化类 3.在function lib中定义类,并实例化类,然后再action中直接使用类实例 4.在function lib中定义类,并定义一个实例化类的函数,然后再action中调用该函数对类进行实例化 补充:第四

在ASP.NET中创建自定义配置节(翻译)

asp.net|创建|asp.net 一.介绍 ASP.NET Web应用程序用一种内置的方法访问简单的"键/值"配置数据.在Web.config文件中,你可以创建节来存储简单的"键/值"对.例如,新建一个ASP.NET项目,在Web.config文件中添加如下的标记作为元素的子标记: 该节包含了用两个标记定义的"键/值"对,你可以通过Page对象内置的ConfigurationSettings属性获得它们的值.作为开始,在你的项目中新建一个名为

asp编程中的测试打印、有效性检查及错误处理

编程|错误|错误处理|打印 经常看到一些初学asp的朋友为了测试一个值到处用response.write来打印, 而要看页面效果时再删除这些语句或加上注释,在正式版本出来以前要如此反复 多次.而有些人为了减少麻烦,干脆全当它是正确的,不做测试输出,像这样极 易出现各种各样的问题,最常见的是如果要生成一条sql语句,需要使用变量,如 果不做测试打印,很难做到一次正确,在chinaasp论坛里经常见到这种问题,老 是有人问这条语句为什么会出错等问题,实际上他只要打印出这条语句看一下语 法是否正确就行

浅谈asp编程中的测试打印、有效性检查及错误处理。不足之处请高手(尤其是斑竹大人)指教

编程|错误|错误处理|打印     经常看到一些初学asp的朋友为了测试一个值到处用response.write来打印, 而要看页面效果时再删除这些语句或加上注释,在正式版本出来以前要如此反复 多次.而有些人为了减少麻烦,干脆全当它是正确的,不做测试输出,像这样极 易出现各种各样的问题,最常见的是如果要生成一条sql语句,需要使用变量,如 果不做测试打印,很难做到一次正确,在chinaasp论坛里经常见到这种问题,老 是有人问这条语句为什么会出错等问题,实际上他只要打印出这条语句看一下语 法是否