您好,欢迎访问三七文档
ResetPrinterOrientationMe'设为默认值Printer.Orientation=VbPRORPortrait'纵向打印Printer.Orientation=VbPRORLandscape'横向打印Printer.PaperSize=vbPRPSA4'定义纸张大小为A4设置打印页边距'你可以使用打印机的Scale属性来设置打印页边距。下面的代码设置左边距为1/2英寸。右边距为3/4英寸。乘以1440是将英尺转换成twips。Printer.ScaleLeft=-0.75*1440Printer.ScaleTop=-0.5*1440Printer.CurrentX=0Printer.CurrentY=0打印多页RichText打印对象在处理RichTextBox时由于忽视了RichText代码将不会工作得很好。为了打印RichTextBox,要使用SelPrint命令,但是SelPrint不是非常得友好,它按照自己的方式打印然后产生退纸动作。为了打印多页RichText,要找到每一页的开始和结束点,然后依此设置SelStart和SelLength,最后使用SelPrint打印出每一页。以下是工作的每一个步骤:1、使用SaveFile命令保存编辑版本的文件。2、转换编辑版本为打印版本:遍历这个文档,修改SelIndent和SelRightIndent的数值,使之适合于打印机(注意:编辑时的缩进数值对于屏幕是合适的,但不适用于打印机)。做些其他的修改,比如:添加页眉,消除行号。3、使用SelPrint循环一次打印一个页面。这里,计算行数是一个技巧,找到LFCRs是容易的,但是,也必须要计算一下行缠绕,它也算在了行统计中,以及绝对不允许发生的页面溢出情况。4、使用SelRTF=删除打印版本。5、使用LoadFile重新启动编辑版本。打印MSFlexGrid这里有一个快速打印MSFlexGrid控件内容的方法:Printer.PaintPictureMSFlexGrid_Name.Picture,0,0Printer.EndDoc如果想打印满页面的整个长度,请在前面添加下面2个语句:Dimold_widthasIntegerMSFlexGrid_Name.width=printer.width然后,再在尾部添加:MSFlexGrid_Name.width=old_widthPaintpicture方法的说明object.PaintPicturepicture,x1,y1,width1,height1,x2,y2,width2,height2,opcodePaintPicture方法的语法包含下列部分:部分描述object可选的。一个对象表达式,该对象一定能在“应用于”列表中找到。如果省略object,带有焦点的Form对象缺省为object。Picture必需的。要绘制到object上的图形源。Form或PictureBox必须是Picture属性。x1,y1必需的。均为单精度数值,指定在object上绘制picture的目标坐标(x-轴和y-轴)。object的ScaleMode属性决定使用的度量单位。Width1可选的。单精度数值,指示picture的目标宽度。object的ScaleMode属性决定使用的度量单位。如果目标宽度比源宽度(width2)大或小,将适当地拉伸或压缩picture。如果该参数省略,则使用源宽度。Height1可选的。单精度数值,指示picture的目标高度。object的ScaleMode属性决定使用的度量单位。如果目标高度比源高度(height2)大或小,将适当地拉伸或压缩picture。如果该参数省略,则使用源高度。x2,y2可选的。均为单精度数值,指示picture内剪贴区的坐标(x-轴和y-轴)。object的ScaleMode属性决定使用的度量单位。如果该参数省略,则缺省为0。Width2可选的。单精度数值,指示picture内剪贴区的源宽度。object的ScaleMode属性决定使用的度量单位。如果该参数省略,则使用整个源宽度。Height2可选的。单精度数值,指示picture内剪贴区的源高度。object的ScaleMode属性决定使用的度量单位。如果该参数省略,则使用整个源高度。Opcode可选的。是长型数值或仅由位图使用的代码。它用来定义在将pictur绘制到object上时对picture执行的位操作(例如,vbMergeCopy或vbSrcAnd操作符)。关于位操作符常数的完整列表,请参阅VisualBasicHelp文件中的RasterOpConstants主题。说明通过使用负的目标高度值(height1)和/或目标宽度值(width1),可以水平或垂直翻转位图。可以省略任何多个可选的尾部的参数。如果省略了一个或多个可选尾部参数,则不能在指定的最后一个参数后面使用逗号。如果想指定某个可选参数,则必须先指定语法中出现在该参数前面的全部参数。快速打印多个拷贝当以TrueType字体打印一个文档时,系统将下载打印机需要的字体,这样做将花费很长的时间。你可以通过在一个打印机文档中打印所有的拷贝实现快速打印多个拷贝内容:Fori=1Tonum_copies注释:Printthedocumenthere...Printer.NewPageNextiPrinter.EndDoc打印灰色行和区域黑白打印机不能打印灰色行,但是能通过发抖处理来创建灰色区域。为了创建围绕一个区域的一个灰色边界,使用DrawStyle=vbInvisible(5)来绘制一个窄灰色框,这样就没有了边界。设置打印的边界使用打印的scale熟悉来设置边界。设置了这个属性后,坐标(0,0)就映射到你需要加边的地方。比如,下面的代码设置左边界为0.5英寸,上边界为0.75英寸。然后再乘以1440转换为twip。Printer.ScaleLeft=-0.5*1440Printer.ScaleTop=-0.75*1440Printer.CurrentX=0Printer.CurrentY=0很遗憾,打印机不能精确地按照你所想的进行打印。试一试使用下面的命令在左上角打印一个1英寸大小的方块:Printer.Line(1440,1440)-Step(1440,1440)看看偏离了多少。试一试多打印几次,如果发现打印机有一定规律的偏离,你就可以按照一定的差额进行增减来达到最佳的效果。提供打印预览建立打印程序时,先设置一个要绘制的对象做为参数,然后传递给程序一个打印的对象。为了实现预览效果,传递给程序一个隐藏PictureBox。然后,根据需要的比例,使用PaintPicture拷贝这个隐藏图形到一个可见的PictureBox。在隐藏PictureBox上按照全尺寸绘制图形,首先允许你按比例决定了字体,并且,也实现了不失真地完成其他图形的描述。
本文标题:VB打印技巧
链接地址:https://www.777doc.com/doc-3947435 .html