打印是編制應(yīng)用程序過程中最復雜的事情之一,不同的打印機提供了各種不同的功能。編寫能充分利用打印機性能的子程序與編寫應(yīng)用程序的其它部分一樣都很困難。慶幸的微軟的Windows平臺使打印工作變得相對容易了。
最近,筆者編制出一套綜合試題庫管理系統(tǒng),完成試題的編輯、自動組卷及打印試卷等工作,在編程時,也碰到了打印問題,筆者找到了幾種打印方法,現(xiàn)將它們整理出來,以飧讀者,希望能給您的工作提供一點方便。
一、采用Visual Basic提供簡單的打印函數(shù)PrintForm方法
應(yīng)用程序窗體的PrintForm方法時,Visual Basic把窗體的位圖送到當前打印機。該方法的優(yōu)點在于它幾乎不需要任何編程,但也有很大缺陷。最為突出的是當?shù)头直媛蕡D形在高分辨率打印機上打印時,其結(jié)果令人無法滿意,會產(chǎn)生鋸齒。下面代碼將在打印機上打印窗體。
Private Sub Command1_Click() '用PrintForm打印
Me.PrintForm '打印窗體的可見區(qū)域
End Sub
二、用Printer對象
用Printer對象可以進行高分辨率輸出,但要想產(chǎn)生復雜的打印輸出,編程較為繁瑣。Printer對象代表系統(tǒng)確省的打印機。Printer對象支持許多由窗體和圖形框所支持的屬性和方法,三種對象都有畫線和畫方框。應(yīng)用程序可用以下列代碼在Printer對象上畫出一平方英寸的方框。它離左上角二英寸。注意:打印機以twips來測量距離。每英寸有1440個twips。
Printer.Line(2*1440,2*1440)-Step(1440,1440), ,B
打印機、從窗體和圖形框都有Circle、PaintPicture、Print、Pset、TextHeight、TextWidth方法。使用這些方法,應(yīng)用程序可以為打印機生成高分辨率輸出。
打印文本直接用Print方法,見下列代碼:
Printer.Print “Hello,China ComputerWorld!” ‘打印字符串
Printer對象還有一些窗體和圖形框都沒有方法:
·NewPage告訴打印機,程序?qū)Ξ斍拜敵鲰摰陌l(fā)送已經(jīng)結(jié)束。Printer對象應(yīng)開始新的一頁。
·EndDoc告訴Visual Basic,程序創(chuàng)建文檔結(jié)束。VISUAL BASIC應(yīng)將它發(fā)送到物理打印機上打印。
·KillDoc取消當前打印作業(yè)。應(yīng)用程序應(yīng)該終止由EndDoc和KillDoc所設(shè)定的每個打印作業(yè)。
·Zoom屬性用于定義打印輸出的縮放因子。
·Copies屬性用于定義打印的副本數(shù)目。