VB中的几种打印方法(转).txt12思念是一首诗,让你在普通的日子里读出韵律来;思念是一阵雨,让你在枯燥的日子里湿润起来;思念是一片阳光,让你的阴郁的日子里明朗起来。作者:迷途浪人
email: mt.lr@263
日期:8/23/2001 10:18:50 AM
1.采用Visual Basic提供的简单打印函数PrintForm方法。应用程序窗体的printForm方法时,Visual Basic把窗体的位图送到当前打印机。该方法的优点在于它几乎不需要任何编程,但也有很大缺陷。最为突出的是当低分辩率图形在高分辩率打印机上打印时,其结果令人无法满意,会产生锯齿。下面代码将在打印机上打印窗体。
Private Sub commandl_Click()用PrintForm打印Me. PrintForm’ 打印窗体的可见区域
End Sub
2.用printer对象进行高分辨率输出。但要想产生复杂的打印输出,编程较为烦琐。Printer对象系统缺省的打印机,Printer对象支持许多由窗体和图形框所支持的属性和方法,三种对象都有画线和画方框。应用程序可用以下代码在Printer对象上画出一平方英寸的方框。它离左上角二英寸。注意:打印机以twips来测量距离。每英寸有1440个twips。
Printer。 Line(2*1440, 2*1440) – Step (1440, 1440), B
打印机、从窗体和图形框都有Cirele、PaintPicture、Print Pset TexHeight TextWidth方法。使用这些方法,应用程序可以为打印机生成高分辨率输出。
打印文本直接用Print方法,见下列代码:
Printer. Print “Hello, China computerWorld!” 打印字符串
Printer对象还有一些窗体和图形框都没有方法:
NewPage告诉打印机,程序对当前输出页的发送已经结束,Printer对象应开始新的一页。
EndDoc告诉VB,程序创建文档结束,V应将它发送到物理打印机上打印。
KillDoc取消当前打印作业。应用程序应该终止由EndDoc和KillDoc所设定的每个打印作业。
Zoom属性用于定义打印输出的缩放因子。
Copies属性用于定义打印的副本数目。
3.采用直接将数据传送打印机的方法进行打印输出。有两种方法将数据送往打印机。第一种是用Print # 方法,就像将数据写入一个文件一样。另一种方法写端口,但不是送文本,而是送特定的PCL语言,PCL表示打印控制语言,它是一种特殊语言,用转义代码来控制打印机的具体动作。因为此方法太烦琐,本文不做太多介绍。
4.如果你在编程时用到了RichTexttBox控制,那么你可以使用该控件的SelPrint方法来打印,使用非常简单。下面一段代码即用RichTextBox控件的SelPrint方法来完成打印。
Private Sub Command3_click() SelPrint方法
CommonDialog1. Flags = cdlPDReturnDC + cdlPDNoPageNums
If RTF1. SelLength = 0 Then RTF1为窗体的RichTextBox控制
CommonDialog1. Flags = CommonDialog1. Flag
s + cdlPDAllPages
Else
CommonDialog1. Flags = CommonDialog1. Flags + cdlPDSelection
End If
CommonDialog1. CancelError = True
On Error Resume Next
CommonDialog1. ShowPrinter
If Err. Number = cdlCancel then Exit Sub
If Err. Number <> 0 Then
Beep
MsgBox 揈rror printing file.?& vbCrLf + Err. Description, vbODOnly + vbExclamation, 揚rinting Error!?/P>
Exit Sub
End If
Printer. Print 摂
RTF1. SelPrint CommonDialog1. HDC?打印RTF1控件的可见区域
End Sub
上面代码先进行打进调协,再进行打印。如果不需要设备,采用下面代码更为简单:
RTF1. SelPrint Printer. HDC’打印RTF1控件的可见区域
5.可以在VB中调用Word 97提供的OLE自动化服务,利用Word 97强大的打印功能来完成VB打印,笔者认为这是最令人满意的方法。下面代码说明VB如何与Word集成。
Private Sub command4_Click() ’调用Word打印
Dim objWord As Object
Const CLASSOBJECT = 揥ord. Application?/P>
On Error GoTo obJError
Set objWord = CreateObject (CLASSOBJECT)
ObjWord. Visible = True
ObjWord. Documents. Add
With objWord
. ActiveDocument. Paragraphs. Last. Range. Bold = False
. ActiveDocument. Paragraphs. Last. Range. Fornt. Size = 20
. ActiveDocument. Paragraphs. Last. Range. Fornt Name = 摵谔濉?/P>
. ActiveDocument. Paragraphs last Range font ColorIndex = 4
. ActiveDocument. Paragraphs. Last. Range. Text = “我是计算机世界读者!”
printformend With
clipboard. Clear
clipboard. SetText“通过剪切板向WORD传送数据!”
objWord. Selection. Paste
objWord. PrintPreview = True ’预览方式
’objWord. PrintOut’执行打印
’objWord. Quit’退出word
Exit Sub
ObjError:
If Err <> 429 Then
MsgBox Str$ (Err) & Error$
Set objWord = Nothing ’不能创建word对象则退出Exit Sub
Else
Resume Next
End If
End sub
6.用VC编制LL模块完成打印。在VB中调用该模块,用混合编程方法进行打印输出。因涉及VC编程比较烦琐,这里不再讨论。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论