VB中的幾種列印方法

2021-08-24 19:31:01 字數 3408 閱讀 5085

[size=medium]1. 採用visual basic 提供的簡單列印函式printform 方法。應用程式窗體的printform 方法時,visual basic 把窗體的點陣圖送到當前印表機。該方法的優點在於它幾乎不需要任何程式設計,但也有很大缺陷。最為突出的是當低解析度圖形在高解析度印表機上列印時,其結果令人無法滿意,會產生鋸齒。下面**將在印表機上列印窗體。

private sub command1_click() ' 用printform 列印

me.printform ' 列印窗體的可見區域

end sub

2. 用printer 物件進行高解析度輸出。但要想產生複雜的列印輸出,程式設計較為煩瑣。printer 物件代表系統預設的印表機,printer 物件支援許多由窗體和圖形框所支援的屬性和方法,三種物件都有畫線和畫方框。應用程式可用以下**在printer 物件上畫出一平方英吋的方框。它離左上角二英吋。注意:印表機以twips 來測量距離。每英吋有1440 個twips。

printer.line(2 *1440,2 *1440) -step(1440,1440), ,b

印表機、從窗體和圖形框都有circle、paintpicture、print、pset、textheight、textwidth 方法。使用這些方法,應用程式可以為印表機生成高解析度輸出。

列印文字直接用print 方法,見下列**:

printer.print "hello,china computerworld!" ' 列印字串

printer 物件還有一些窗體和圖形框都沒有方法:

newpage 告訴印表機,程式對當前輸出頁的傳送已經結束,printer 物件應開始新的一頁。

enddoc 告訴vb,程式建立文件結束,vb 應將它傳送到物理印表機上列印。

killdoc 取消當前列印作業。應用程式應該終止由enddoc 和killdoc 所設定的每個列印作業。

zoom 屬性用於定義列印輸出的縮放因子。

copies 屬性用於定義列印的副本數目。

3. 採用直接將資料傳送印表機的方法進行列印輸出。有兩種方法將資料送往印表機。第一種是用print #方法,就像將資料寫入乙個檔案一樣。另一種方法寫埠,但不是送文字,而是送特定的pcl 語言,pcl 表示列印控制語言,它是一種特殊語言,用轉義**來控制印表機的具體動作。因為此方法太煩瑣,本文不做太多介紹。

4. 如果你在程式設計時用到了richtextbox 控制,那麼你可以使用該控制項的selprint 方法來列印,使用非常簡單。下面一段**即用richtextbox 控制項的selprint 方法來完成列印。

private sub command3_click() 'selprint 方法

commondialog1.flags=cdlpdreturndc +cdlpdnopagenums

if rtf1.sellength = 0 then

'rtf1 為窗體的richtextbox 控制

commondialog1.flags = commondialog1.flags

+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 "error printing file."

&vbcrlf +err.description, vbokonly +vbexclamation,

「printing error!"

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

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.font.size =20

.activedocument.paragraphs.last.range.font.name =

"黑體"

.activedocument.paragraphs.last.range.font.colorindex==4

.activedocument.paragraphs.last.range.text =

"我是計算機世界讀者!"

end 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 編制dll 模組完成列印。在vb 中呼叫該模組,用混合程式設計方法進行列印輸出。因涉及vc 程式設計比較煩瑣,這裡不再討論。[/size]

小插頭列印方法

string strlabel getlabeltxt if serialport1.isopen strlabel strlabel.replace number no this.serialport1.write strlabel system.threading.thread.sleep 20...

具體java列印方法的實現

0 printable介面由當前頁面 painter 的 print 方法實現,該方法由列印系統呼叫,以呈現頁面。1 pageable介面由 pageformat 和 printable 組成。在printable介面中也可以進行多個頁面列印 pageable介面可以對每個printable指定單獨...

瀏覽器列印方法總結

1.關於列印,瀏覽器有自帶的列印方法,但是有個問題就是它只能列印整個頁面。如果需要列印區域性會比較麻煩。具體實現方法可以看下面 function doprint 在html 頁面中,我們需要在列印的區域加個開始與結束的識別符號。如下圖所示 2.用printthis外掛程式 實現區域性列印。使用方法如...