打印

问题描述

如何在visualstudio2005通过button打印textbox的内容

解决方案

解决方案二:
在windows应用程序中文档的打印是一项非常重要的功能,在以前一直是一个非常复杂的工作,Microsoft.netFramework的打印功能都以组件的方式提供,为程序员提供了很大的方便,但是这几个组件的使用还是很复杂的,有必要解释一下。打印操作通常包括以下四个功能1打印设置设置打印机的一些参数比如更改打印机驱动程序等2页面设置设置页面大小纸张类型等3打印预览类似于word中的打印预览4打印下面我把我编写的记事本(全部源代码可以在http://www.cndot.net中下载)中用到的打印功能的代码进行解释希望能给大家一些帮助实现打印功能的核心是PrintDocument类这个类属于System.Drawing.Printing名字空间这个类封装了当前的打印设置页面设置以及所有的与打印有关的事件和方法这个类包括以下几个属性事件和方法1、PrinterSettings属性存放打印机的设置信息这个属性不需要程序员设置因为它是由打印对话框获取的2、PrintCountroller属性控制打印过程3、DefaultPageSettings属性存放页面设置信息打印纸大小方向等也不需要程序员设置因为它是由页面设置对话框获取的4、DocumentName属性指定文档名称,出现在打印机状态窗口中1。BeginPrint事件在打印之前发出2.PrintPage事件每打印一页是发出,事件接受一个PrintPageEventArgs参数该参数封装了打印相关的信息PrintPageEventArgs参数有很多重要的属性1Cancel取消打印2Graphics页面的绘图对象3HasMorePages是否还有要打印的页面Print方法该方法没有参数调用它将按照当前设置开始打印若实现打印功能首先构造PrintDocument对象添加打印事件PrintDocumentprintDocument;privatevoidInitializeComponent(){...printDocument=newPrintDocument();printDocument.PrintPage+=newPrintPageEventHandler(this.printDocument_PrintPage);...}实现打印事件功能打印和绘图类似都是调用Graphics类的方法进行画图不同的是一个在显示器上一个在打印纸上并且打印要进行一些复杂的计算如换行分页等。privatevoidprintDocument_PrintPage(objectsender,PrintPageEventArgse){Graphicsg=e.Graphics;//获得绘图对象floatlinesPerPage=0;//页面的行号floatyPosition=0;//绘制字符串的纵向位置intcount=0;//行计数器floatleftMargin=e.MarginBounds.Left;//左边距floattopMargin=e.MarginBounds.Top;//上边距stringline=null;行字符串FontprintFont=this.textBox.Font;//当前的打印字体SolidBrushmyBrush=newSolidBrush(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,newStringFormat());count++;}如果本页打印完成而line不为空说明还有没完成的页面这将触发下一次的打印事件在下一次的打印中lineReader会自动读取上次没有打印完的内容因为lineReader是这个打印方法外的类的成员它可以记录当前读取的位置if(line!=null)e.HasMorePages=true;elsee.HasMorePages=false;}打印设置,构造打印对话框将对话框中设置的Document属性赋给printDocument这样会将用户的设置自动保存到printDocument的PrinterSettings属性中protectedvoidFileMenuItem_PrintSet_Click(objectsender,EventArgse){PrintDialogprintDialog=newPrintDialog();printDialog.Document=printDocument;printDialog.ShowDialog();}页面设置和打印预览与打印设置原理相同都是构造对话框将用户在对话框中的设置保存到相应的类的属性中protectedvoidFileMenuItem_PageSet_Click(objectsender,EventArgse){PageSetupDialogpageSetupDialog=newPageSetupDialog();pageSetupDialog.Document=printDocument;pageSetupDialog.ShowDialog();}打印预览protectedvoidFileMenuItem_PrintView_Click(objectsender,EventArgse){PrintPreviewDialogprintPreviewDialog=newPrintPreviewDialog();printPreviewDialog.Document=printDocument;lineReader=newStringReader(textBox.Text);try{printPreviewDialog.ShowDialog();}catch(Exceptionexcep){MessageBox.Show(excep.Message,"打印出错",MessageBoxButtons.OK,MessageBoxIcon.Error);}}打印就可以直接调用printDocument的Print()方法因为用户可能在打印之前还要再更改打印设置所以在这里再次显示打印设置对话框protectedvoidFileMenuItem_Print_Click(objectsender,EventArgse){PrintDialogprintDialog=newPrintDialog();printDialog.Document=printDocument;lineReader=newStringReader(textBox.Text);if(printDialog.ShowDialog()==DialogResult.OK){try{printDocument.Print();}catch(Exceptionexcep){MessageBox.Show(excep.Message,"打印出错",MessageBoxButtons.OK,MessageBoxIcon.Error);printDocument.PrintController.OnEndPrint(printDocument,newPrintEventArgs());}}}总结打印的过程是1在应用程序窗体初始化时构造PrintDocument对象添加printDocument的PrintPage方法2实现PrintPage方法4在用户的单击事件中调用printDocument的Print方法实现打印功能在这中间可能要用到PrintDialogPrintPreviewDialogPageSetupDialog设置和查看打印效果这些方法通常是由菜单的单击触发的。

时间: 2025-01-24 18:43:23

打印的相关文章

利用Visual Basic设计打印复杂报表

一.用VB创建外部EXCEL对象 大多数大型ActiveX-enabled应用程序和其它ActiveX部件,在它们的对象层次中都提供了一个顶层外部可创建对象.该对象提供了对该层次中其它对象的访问,并且还提供对整个应用程序起作用的方法和属性. 例如,每个MicrosoftOffice应用程序提供一个顶层Application对象.下面语句显示了对Microsoftoffice/9.shtml'target='_blank'class='article'>Excel的Application对象的引用

串口-如何通过android截取收银机的打印数据,组装后上传到后台服务器,然后把数据传到打印机打印小票?

问题描述 如何通过android截取收银机的打印数据,组装后上传到后台服务器,然后把数据传到打印机打印小票? 如题.举个例子,收银机连接打印机实现收银.打印小票,现在想在中间接个硬件Android系统,截取打印数据上传到后台服务器,不对现有收银系统改造,不能影响正常收银. 注:该硬件两端通过串口/并口/usb连接收银机与打印机 解决方案 用小票打印机打印 解决方案二: 这种需要抓包的,安卓不可能.... 解决方案三: 这个你需要截取他的网络包就行了.

IE浏览器中打印网页时网页版面太大或太宽打印不全

  方法一:修改打印格式的边界设定 这个方法比较常用,但一些超宽的网页可能无效. 1.打开IE 浏览器,在打开需要打印的网页.然后点击菜单栏的「文件」 ,在选择「页面设置」 项,如下图所示: 注意:如果找不到IE菜单栏,可以在IE中按下键盘上的 Alt 键即可显示出来. 2.在「页面设置」窗口中,将「纸张大小」设定为「A4」 ,然后将左右页边距设置为「5」 ,上下页边距设定为「10」 .最后点击「确定」 按钮.如下图所示: 注意:每个型号的打印机都有最小的可打印边界,上下左右边界必须设定在您的打

win7系统电脑打印文档后出现隐藏的网站链接怎么去掉?

  win7系统电脑打印文档后出现隐藏的网站链接怎么去掉?         方法一: 1.按ALT+F9可将文档中的域代码全部显示出来(特有字会被链接替换); 2.然后编辑--替换,在查找内容中输入除{ }符号的其它字符(如果将符号{}一并拷贝过来的话会自动换为特有字),在"替换为"中输入特有字,"全部替换"即可. 方法二: 1.工具--选项,在"打印"选项卡中找到"打印文档的附加信息",取消勾选"域代码"

巧用Win7系统添加打印目录提高打印速度

Windows7系统的强大性能和高效率深受用户们的喜爱,它的很多功能与技巧要是都能够很好的运用起来的话就可以提高工作效率.比如当用户打印很多文件时,比如需打印一个文件夹中的所有目录的时候,一个一个操作的话很是麻烦.其实在Windows7系统中只要添加打印机目录,就可让打印工作变得很轻松,下面小编就跟大家分享Win7系统中提高打印效率,快速打印文件夹文件添加打印目录的技巧. 操作方法: 1.在华硕笔记本Win7系统桌面上右击选择"新建--文本文档",将以下代码复制粘贴到新建的文本文档中:

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

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

关于java打印方面的问题

问题描述 关于java打印方面的问题 java打印技术都有哪些呢? 最近在做仓库管理系统, 关于打印面单方面,我还存在这一些疑问,请高手指点? 解决方案 你说的应该是B/S的吧,我之前系统也有用到,用的是lodoop的,免费,功能强!推荐给你. 解决方案二: 可以搜索一下 java怎样调用本机的打印机 貌似代码很简洁 ,以前遇到过也是这样弄的!

多彩的Console打印新玩法

Chrome应该是每一个Web开发者必备的工具之一.它有而强大的Devtool,辅助我们的JavaScript调试,审视DOM元素,CSS即时修改等.以及它还有一个的庞大的插件系统,同时我们也可以很容易的扩展属于自己的Chrome插件.如果希望了解更多的Chrome常用调试,请参见笔者早期的微信推送文章<15个必须知道的chrome开发者技巧>. Chrome中的控制台console,是我们检查程序允许是否正常的常用工具之一,同时它也是我们打印调试日志信息,运行调试代码的常用工具.在国内近几年

Excel单列表格的打印方法

利用Excel自身的公式操作,也可轻松实现单列表格文本的合成打印.以横向排列,逐行显示的"学生姓名"列为例,具体操作方法如下: 1. 先在当前表sheet1的适当位置选择一列作为数据合成列,如F列,并在其下第2个单元格F2中输入公式"=F1&&" "&&B2",(公式表示在二个姓名之间空2格)则F2中产生第一个姓名,选择F2,利用向下拖动填充句柄的方法将F2中公式复制到以下单元格中,直到最后一行,则以下单元格的内容

Access3.5 屏幕显示方式和打印报表样式

  如果没有什么别的要求就单击下一步按钮 现在对话框中的内容又发生了改变我们需要选择屏幕的显示方式也就是选择将要建立的数据库中窗口的背景窗口上的默认字体大小和颜色用鼠标单击一个选项就会发现在窗口左边的方框中展示出所选的显示样式这样每选一次就看看满意不满意很容易就可以找到比较合适的效果了选择工业单击下一步按钮现在这个对话框要选择打印报表的样式 打印报表就是把数据库中的数据打印在纸上而打印报表的样式就是指打印时所用的格式和刚才屏幕的显示样式一样每选定一个选项左面的方框中都会将所选的打印报表样式显示出