`
sunguanxing
  • 浏览: 1083257 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

VB中的几种打印方法

阅读更多
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
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
6. 用VC 编制DLL 模块完成打印。在VB 中调用该模块,用混合编程方法进行打印输出。因涉及VC 编程比较烦琐,这里不再讨论。
分享到:
评论

相关推荐

    VB的几种打印方法

    VB的几种打印方法

    VB编程资源大全(源码 其它1)

    prnprv3.zip 在vb5/6中增加打印预览功能(78KB) 662,vbprint.zip vb中使用打印功能的add-in(764KB) 663,spool.zip 打印文件的例子(5KB) 664,versioninfo.zip 从dll或exe文件中获得版本信息(3KB)...

    VB编程资源大全(源码 其它4)

    prnprv3.zip 在vb5/6中增加打印预览功能(78KB) 662,vbprint.zip vb中使用打印功能的add-in(764KB) 663,spool.zip 打印文件的例子(5KB) 664,versioninfo.zip 从dll或exe文件中获得版本信息(3KB)...

    基于VB语言的学生信息管理系统

    该系统主要包括以下几种主要功能:数据录入,查询与修改,删除,系统帮助等管理模块,对每类信息的管理都具有增加、删除、修改和查询功能。在权限分配上,分为两种管理员用户和教师用户。按登录者的身份不同,权限也...

    VB判断闰年典型实例

    摘要:VB源码,其它类别,闰年 使用VB语言判断闰年的几种典型实例,一种是直接输出某年是否是闰年,一种是输出真或假,不管是哪种方法,都有各自的道理。代码中也加注了释义,希望对大家有帮助。

    VB编程资源大全(源码 其它3)

    prnprv3.zip 在vb5/6中增加打印预览功能(78KB) 662,vbprint.zip vb中使用打印功能的add-in(764KB) 663,spool.zip 打印文件的例子(5KB) 664,versioninfo.zip 从dll或exe文件中获得版本信息(3KB)...

    VB编程资源大全(源码 其它2)

    prnprv3.zip 在vb5/6中增加打印预览功能(78KB) 662,vbprint.zip vb中使用打印功能的add-in(764KB) 663,spool.zip 打印文件的例子(5KB) 664,versioninfo.zip 从dll或exe文件中获得版本信息(3KB)...

    条形码产生和识别程序.doc

    用编程语言中的绘图语句-画矩形框在相应的坐标上画出各种宽度不同的条元素这样即可实现条形码的计算机软件打印。 VB中几种打印功能在条码打印时的比较 VisualBasic是

    铁路订票系统查询VB ADO ACCESS

    该系统具有输入、查询、统计分析和打印等功能。它不仅对火车站的业务管理有帮助,而且对火车站的行政管理也起到了积极的作用。该系统的运行,将会在一定程度上提高火车站的工作效率,并适当地拓展了火车站的业务活动...

    asp.net知识库

    在ASP.Net中两种利用CSS实现多界面的方法 如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值...

    毕业设计依据VB合同管理系统设计与实现(源代码+系统+需求分析)

    新的数据源:除了已有的Data和Remote Data控件外,Visual Basic 6.0引入了几种新的数据源,包括数据识别的类模块和用户控件、数据环境、ADO记录集和ADO Data控件等。ADO Data控件的功能与Data和Remote Data控件...

    编程语言语法(vb powerbuilder c++ javascript)对照

    几种常用编程代码语言的基本语法对照, 打印在手, 可以免除在不同的编程代码语言之间,常记乱语法的无奈

    c# .net vb生成PDF编辑PDF的源码

    SharpPDF代码支持在.net平台实现PDF生成和编辑。...它几乎可以实现PDF相关的所有功能,如:PDF生成, 页眉页脚、背景设置、PDF合并、拆分、签名、保护、盖戳、水印、增删、打印控制等几十种操作。功能强大。

    javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第1/2页

    想过几种方案: 1.使用jacob。 2.使用apache的poi。 3.使用itext。 由于时间比较紧,没多的时候去学习研究上述工具包,现在用javascript操作ActiveXObject控件,用替换word模板中的书签方式解决。 前提条件: 1....

    ReportMachine

     1、支持屏幕打印,控制方法多样,可以打印全部rxlib控件 全部InfoPower控件,TDBGrid,TStringGrid,TImage,TEdit等,TDBGridEh,f1book, TDecisionGrid等等众多控件。(例子1,例子2,例子3,例子4,例子5)  2、支持最终...

    linecount智能源码统计专家软件下载

    .cs,当选取的文件不属于以上几种时,程序会判断是否是用户自定义的统计类型。 2、对于 *.* 和目录统计的功能,程序只筛选系统缺省类型和用户自定义类型的文件,不属于已定义的类型将不进行统计。 3、对没有文件...

    ATGrid报表控件/插件V2.1.7.711

    可以不用写一行代码....... 19、报表的单元格类型多大几十种,如:Text,Num,Button,Radio,CheckBox,Combox..... 20、不但实现报表展示功能,更重要突破了报表在线编辑功能........ 21、和后端服务器程序的...

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

    Leadtools_Crack_16

    提供几种不同级别Internet支持,包括:可封装到CAB文件的对象、能在web服务器端构造的对象、从URL或存储器装载图像的功能、支持HTTP 和FTP的控件、解析并加载到web服务器端的文件控件,以及用来构造功能强大、通过...

Global site tag (gtag.js) - Google Analytics