`

window打印程序

    博客分类:
  • C#
 
阅读更多

        private void 打印PToolStripMenuItem_Click(object sender, EventArgs e)
        {
            printDialog1.Document = printDocument1;
            lineReader = new StringReader(textBox1.Text);
            if (printDialog1.ShowDialog()==DialogResult.OK)
            {
                try
                {
                    printDocument1.Print();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    printDocument1.PrintController.OnEndPrint(printDocument1, new PrintEventArgs());
                }
            }
            printDialog1.ShowDialog();
        }

        private void 打印预览VToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //printPreviewDialog1可以自己创建一个如下:
            //PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
            printPreviewDialog1.Document = printDocument1;
            lineReader = new StringReader(textBox1.Text);
            try
            {
                printPreviewDialog1.ShowDialog();
            }
            catch (Exception excep)
            {
                MessageBox.Show(excep.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

 

最关键的处理类

 

  private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
        {
            Graphics g = e.Graphics; //获得绘图对象
            float linesPerPage = 0; //页面的行号
            float yPosition = 0;   //绘制字符串的纵向位置
            int count = 0; //行计数器
            float leftMargin = e.MarginBounds.Left; //左边距
            float topMargin = e.MarginBounds.Top; //上边距
            string line = null; //行字符串
            Font printFont = this.textBox1.Font; //当前的打印字体
            SolidBrush myBrush = new SolidBrush(Color.Black);//刷子
            linesPerPage = e.MarginBounds.Height / printFont.GetHeight(g);//每页可打印的行数
            //逐行的循环打印一页
            while (count < linesPerPage && ((line = lineReader.ReadLine()) != null))
            {
                yPosition = topMargin + (count * printFont.GetHeight(g));
                g.DrawString(line, printFont, myBrush, leftMargin, yPosition, new StringFormat());
                count++;
            }
            // 注意:使用本段代码前,要在该窗体的类中定义lineReader对象:
            //       StringReader lineReader = null;
            //如果本页打印完成而line不为空,说明还有没完成的页面,这将触发下一次的打印事件。在下一次的打印中lineReader会
            //自动读取上次没有打印完的内容,因为lineReader是这个打印方法外的类的成员,它可以记录当前读取的位置
            if (line != null)
            {
                e.HasMorePages = true;
            }
            else
            {
                e.HasMorePages = false;
                // 重新初始化lineReader对象,不然使用打印预览中的打印按钮打印出来是空白页
                lineReader = new StringReader(textBox1.Text); // textBox是你要打印的文本框的内容
            }
        }
    }

分享到:
评论

相关推荐

    c#2.0 window程序打印

    在C# 2.0中,开发Windows应用程序时,经常需要实现打印功能,例如打印报表、单据等。本文将详细介绍如何使用C# 2.0进行窗口程序的打印操作,以及如何通过引入DLL文件来简化这一过程。 首先,我们要了解C# 2.0中的...

    VC++打印图片程序DEMO

    【VC++打印图片程序DEMO】是一个使用Microsoft Visual C++(简称VC++)开发的MFC应用程序,专门设计用于在Windows环境下打印图片。MFC(Microsoft Foundation Classes)是微软提供的一个C++类库,它封装了Windows ...

    window.print分页打印

    在IT行业中,打印功能是许多应用程序不可或缺的一部分,尤其是在办公环境中。`window.print()` 是JavaScript中的一个内置函数,它用于触发浏览器的打印对话框,让用户可以选择打印网页内容。在这个主题下,我们将...

    打印及打印预览 c#Window

    在C#编程环境中,打印和打印预览是两个重要的功能,尤其在开发Windows应用程序时,它们经常被用于处理文档输出。下面将详细讲解这两个概念及其在C#中的实现。 一、打印预览 打印预览是用户在实际打印之前查看文档...

    window写字板程序

    标题中的“window写字板程序”指的是Windows操作系统内置的一个简单文本编辑工具——写字板。写字板是微软为用户提供的一种轻量级的文字处理软件,它在早期的Windows系统如Windows XP中被广泛使用,允许用户创建、...

    javascript编写基于chrome浏览器的打印程序,本例用来打印小票.zip

    总结来说,这个压缩包提供的资源帮助我们理解了如何使用JavaScript和Chrome浏览器编写一个用于打印小票的程序。这涉及到HTML和CSS的使用,JavaScript的打印功能,以及可能的浏览器打印设置调整。对于想要开发类似...

    uniapp 微信小程序小票打印机打印教程(超详细讲解) 完整代码,下载后可直接使用

    在本文中,我们将深入探讨如何使用uniapp框架和微信小程序来实现小票打印机的打印功能。这个教程将提供一个详尽的步骤指南,确保你能够理解并应用到实际项目中。我们将涵盖以下知识点: 1. **uniapp简介**:uniapp...

    麒麟云打印windows服务端和linux客户端

    在Windows服务端,麒麟云打印利用服务程序驻留在后台,确保即使用户没有登录到操作系统,也能持续接收并处理打印任务。服务端主要负责管理打印机配置、接收来自客户端的打印请求、转换打印数据格式以及通过网络将...

    vc mfc 打印程序

    本文将详细解析"vc mfc 打印程序"的相关知识点,特别是如何处理打印预览和解决使用绝对路径的问题。 首先,了解MFC中的打印机制。在MFC中,打印功能主要通过CView类的派生类实现,它提供了OnDraw()函数来绘制视图...

    Window程序设计第五版

    本书《Window程序设计第五版》是为希望学习在微软Windows平台下进行程序设计的读者所编写的技术指南,内容覆盖了在Windows 98、Windows NT 4.0以及Windows NT 5.0等操作系统上用C语言结合Windows API进行编程的核心...

    可以获取打印任务文字图片等。C#调用windowsAPI获取打印的各种参数,包含打印序列,打印任务文字和图片等。设置打印参数

    在IT领域,尤其是在Windows应用程序开发中,经常需要与操作系统进行深度交互,这通常涉及到调用Windows API(Application Programming Interface)来实现一些特定的功能。在这个场景下,标题和描述提到的是利用C#...

    打印及打印预览 c# Window

    在C#编程环境中,Windows应用程序开发常常涉及到打印和打印预览功能。这通常是为用户提供一个可视化的方式,查看即将被打印机输出的内容,确保无误后再进行实际打印操作。本篇文章将详细探讨C#中如何实现这一功能。 ...

    pb6.5window2000/xp打印设置

    标题中的“pb6.5window2000/xp打印设置”指的是在PowerBuilder 6.5环境下,针对Windows 2000或XP操作系统进行的打印配置问题。PowerBuilder (PB) 是一种可视化的、面向对象的软件开发工具,主要用于创建企业级的桌面...

    PB9.0制作的支票打印程序

    本文将深入探讨如何使用PB9.0来制作一个支票打印程序,同时结合提供的源代码,帮助读者理解其工作原理和实现细节。 首先,让我们了解支票打印程序的基本需求。此类程序通常需要具备以下功能: 1. 用户输入支票信息...

    win7和window2000驱动程序

    标题中的“win7和window2000驱动程序”指的是在Windows 7和Windows 2000操作系统中使用的硬件设备驱动程序。驱动程序是计算机操作系统与硬件设备之间的重要桥梁,它允许操作系统控制和管理硬件设备,使得硬件能正常...

    Java毕业设计-基于SpringBoot+微信小程序的校园自助打印系统+数据库+使用文档+全部资料+演示视频(高分项目)

    Java毕业设计-基于SpringBoot+微信小程序的校园自助打印系统+数据库+使用文档+全部资料+演示视频(高分项目) 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境...

    开发中调用window程序.rar

    本文将详细探讨如何在Delphi环境下实现这一功能,主要基于提供的压缩包文件"开发中调用window程序.rar",该资源包含实际的源代码示例,方便开发者直接使用和学习。 首先,我们要了解Windows API(应用程序接口),...

    WEB应用程序,不预览,直接打印

    JavaScript提供了window.print()函数,可以直接调用浏览器的打印功能,而无需用户进行预览操作。 在描述中提到的博文链接指向了一个可能的解决方案,但具体的内容并未给出。通常,这类解决方案可能会包含以下几点:...

    ext打印、jquery打印、ext导出excel

    在IT行业中,打印功能和数据导出能力是Web应用程序中不可或缺的部分。`ext打印`、`jquery打印`和`ext导出excel`都是与前端开发密切相关的技术,主要用于提升用户体验和增强数据处理能力。 首先,我们来详细了解一下...

Global site tag (gtag.js) - Google Analytics