笑话大全网 - 爆笑笑话 - 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