打印多页Rich Text
打印对象在处理RichTextBox时由于忽视了Rich Text代码将不会工作得很好。为了打印RichTextBox,要使用SelPrint命令,但是SelPrint不是非常得友好,它按照自己的方式打印然后产生退纸动作。为了打印多页Rich Text,要找到每一页的开始和结束点,然后依此设置SelStart和SelLength,最后使用SelPrint打印出每一页。以下是工作的每一个步骤:
1、使用SaveFile命令保存编辑版本的文件。
2、转换编辑版本为打印版本:
遍历这个文档,修改SelIndent和SelRightIndent的数值,使之适合于打印机(注意:编辑时的缩进数值对于屏幕是合适的,但不适用于打印机)。
做些其他的修改,比如:添加页眉,消除行号。
3、使用SelPrint循环一次打印一个页面。这里,计算行数是一个技巧,找到LFCRs是容易的,但是,也必须要计算一下行缠绕,它也算在了行统计中,以及绝对不允许发生的页面溢出情况。
4、使用SelRTF=””删除打印版本。
5、使用LoadFile重新启动编辑版本。
打印MSFlexGrid
这里有一个快速打印MSFlexGrid控件内容的方法:
Printer.PaintPicture MSFlexGrid_Name.Picture, 0, 0
Printer.EndDoc
如果想打印满页面的整个长度,请在前面添加下面2个语句:
Dim old_width as Integer
MSFlexGrid_Name.width=printer.width
然后,再在尾部添加:
MSFlexGrid_Name.width=old_width
快速打印多个拷贝
当以TrueType字体打印一个文档时,系统将下载打印机需要的字体,这样做将花费很长的时间。你可以通过在一个打印机文档中打印所有的拷贝实现快速打印多个拷贝内容:
For i = 1 To num_copies
注释: Print the document here…
Printer.NewPage
Next i
Printer.EndDoc
打印灰色行和区域
黑白打印机不能打印灰色行,但是能通过发抖处理来创建灰色区域。为了创建围绕一个区域的一个灰色边界,使用DrawStyle=vbInvisible(5)来绘制一个窄灰色框,这样就没有了边界。
设置打印的边界
使用打印的scale熟悉来设置边界。设置了这个属性后,坐标(0,0)就映射到你需要加边的地方。比如,下面的代码设置左边界为0.5英寸,上边界为0.75英寸。然后再乘以1440转换为twip。
Printer.ScaleLeft = -0.5 * 1440
Printer.ScaleTop = -0.75 * 1440
Printer.CurrentX = 0
Printer.CurrentY = 0
很遗憾,打印机不能精确地按照你所想的进行打印。试一试使用下面的命令在左上角打印一个1英寸大小的方块:
Printer.Line (1440, 1440)-Step(1440, 1440)
看看偏离了多少。试一试多打印几次,如果发现打印机有一定规律的偏离,你就可以按照一定的差额进行增减来达到最佳的效果。
提供打印预览
建立打印程序时,先设置一个要绘制的对象做为参数,然后传递给程序一个打印的对象。
为了实现预览效果,传递给程序一个隐藏PictureBox。然后,根据需要的比例,使用PaintPicture拷贝这个隐藏图形到一个可见的PictureBox。在隐藏PictureBox上按照全尺寸绘制图形,首先允许你按比例决定了字体,并且,也实现了不失真地完成其他图形的描述。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
使用Cassandra进行.Net编程
本文将介绍如何针对特定的架构设计实现特定的功能. 最终实现基于Dotnet Cassandra存储的应用开发。
-
解读SQL Server数据库存储过程发展历史
SQL Server存储过程可以是Transact-SQL(T-SQL)语句,或者是.NET框架的公共语言运行时(CLR),它是专为方便数据库查询而设计的。
-
数据库新技术:Hadoop和MapReduce的比较
MapReduce和Hadoop是相互独立的,实际上又能相互配合工作得很好。因此,我们常常发现他们会被同时提到。
-
甲骨文将致力于增强Java技术的趣味性
在硅谷召开的技术会议上,甲骨文的一位官员强调,要想维持Java作为最有影响力的编程语言的地位,就要不断提高其趣味性。