當前位置:編程學習大全網 - 編程語言 - vb中,用 Open LPT1 For Output As #1 連接不上虛擬打印機 怎麽處理,提示文件未找到!

vb中,用 Open LPT1 For Output As #1 連接不上虛擬打印機 怎麽處理,提示文件未找到!

我們編程時,如果在程序中加入“打印”功能會使程序更加完善,更加專業。下面,我提供幾種編寫打印程序的方法以供大家參考。

1. 采用Visual Basic提供的簡單打印函數PrintForm方法

應用程序窗體的PrintForm方法時?Visual Basic把當前窗體的位圖送到打印機。該方法的優點在於它幾乎不需要任何編程?但也有很大缺陷。最為突出的是當低分辨率圖形在高分辨率打印機上打印時?其結果令人無法滿意?會產生鋸齒。

代碼如下:

Private Sub Command1_Click?  '用PrintForm打印

Me.PrintForm '打印窗體的可見區域

End Sub

2. 用Printer對象

要想產生復雜的打印輸出?編程較為煩瑣。Printer對象代表系統缺省的打印機?Printer對象支持許多由窗體和圖形框所支持的屬性和方法?三種對象都有畫線和畫方框。應用程序可用以下代碼在Printer對象上畫出1平方英寸的方框。註意?打印機以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. 如果妳在編程時用到了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控件的可見區域

4.可以在VB中調用Word 97提供的OLE自動化服務?利用Word 97強大的打印功能來完成VB打印

代碼如下:

Private Sub Command4_Click?  '調用Word打印

Dim objWord As Object

Const CLASSOBJECT = "Word.Application"

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

  • 上一篇:每天上班都想劃水,要怎樣擺正心態?
  • 下一篇:智能電子產品設計
  • copyright 2024編程學習大全網