VB的几种打印方法

我们编程时,如果在程序中加入“打印”功能会使程序更加完善,更加专业。下面,我提供几种编写打印程序的方法以供大家参考。
  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   4  1440 -Step 1440 1440  B
  打印机、从窗体和图形框都有Circle、PaintPicture、Print、Pset、TextHeight、TextWidth方法。使用这些方法应用程序可以为打印机生成高分辨率输出。
  打印文本直接用Print方法,见下列代码:
  Printer.Print "HelloChina 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CCNP-第四篇-OSPF高级版(一)

CCNP-第四篇-OSPF高级版(一) OSPFOpen shortes path first 开放式最短路径优先协议 最大优点:公有,开放,任何一个品牌都能用 EIGRP最大优点:快的一批 EIGRP最大缺点:思科私有 OSPF甚至于在Liunx上也能运行起来 OSPF是采用动态更新的 所以会给设备带来大量的硬件消耗 在OSPF中…

【转】DevOps到底是什么意思?

提到DevOps这个词&#xff0c;我相信很多人一定不会陌生。 作为一个热门的概念&#xff0c;DevOps近年来频频出现在各大技术社区和媒体的文章中&#xff0c;备受行业大咖的追捧&#xff0c;也吸引了很多吃瓜群众的围观。 那么&#xff0c;DevOps是什么呢&#xff1f; 有人说它…

CCNP-第五篇-OSPF高级版(二)

CCNP-第五篇-OSPF高级版(二) 链路状态数据库LSDB拓扑表 link state database 收到之后放入自己的数据库再计算最新的放入路由表 根据COST值来计算 >COST值的计算方式10的8次方除以带宽这个环境会涉及一个东西叫做重分布,这类会做,然后下一章或者下下章会详细开始讲. 详细环…

IIS 内部运行机制

ASP.NET是一个非常强大的构建Web应用的平台&#xff0c;它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用。 绝大多数的人只熟悉高层的框架如&#xff1a; WebForms 和 WebServices — 这些都在ASP.NET层次结构的最高层。 这篇文章的资料收集整理自各种微软公…

CCNP-第六篇-OSPF高级版(三)

CCNP-第六篇-OSPF高级版(三) 这一节差不多都是密码认证了,还有个NSSA和OE1,OE2 OSPF默认路由OSPF认证问题OSPF特殊区域,NSSA,STUB OSPF下发默认路由 其实跟EIGRP一样,只不过是下发一条路由给别人指向自己 一般都用于核心连接出口处,或者汇聚连接核心处 如果是这种环境下,那…

SharePoint 2013异常信息的查看

刚刚学习SharePoint开发的时候&#xff0c;经常遇到一些异常&#xff0c;却不能直接看到详细信息&#xff0c;很郁闷。这里做下简单的整理&#xff0c;方便查找&#xff1a; 1、代码未处理异常出现黄页——”‘/’应用程序中的服务器错误。运行时错误“。 其实这个黄页是ASP.N…

CCNP-第七篇-OSPF高级版(四)+策略开头

CCNP-第七篇-OSPF高级版(四)策略开头 今天讲NSSA和完全NSSA NSSA区域叫做非完全末节区域,这个东西都不知道命名的人怎么想的 因为完全NSSA区域叫做完全非完全末节区域,pleas,你人傻了吗? NSSA区域特点:过滤4,5类的LSA,同时会5类转为7类条目 7类在路由表里面是ON的 然后,7类除…

同步界面

设置FFS程序 当你下载、安装好后桌面会出现这两个图标。左边是主要的程序&#xff0c;右边软件用来设置自动同步。打开绿色图标的程序。 打开蓝色的设置按钮。 建议选择“文件时间和大小”。单纯的大小不能反映内容。比较文件内容又取决于硬盘速度。如果速度够快可以选择文件内…

CCNP-第八篇-分发列表+PRB+重分布+Route-Map

CCNP-第八篇-分发列表PRB重分布Route-Map 这个学不好,BGP就一定学不好 Route-Map 这样理解吧,在Route-map中 ACL就相当于警察,只能抓,不能判 Rroute-map呢就相当于法官,法官可以判罚 一般都是结合使用的,因为不结合这玩意也没法用环境如图 需求:干掉100.1.1.0/24 在Route-m…

基于diff的文件同步算法(上)

1.写在前面 文件同步的核心问题是新旧版本的对比问题。这里所说的版本是指用于区分文件变更的一种状态标记&#xff0c;它可以是我们通常所说的版本号&#xff0c;也可以是时间戳&#xff0c;如修改时间。本文介绍一种基于diff的文件同步算法&#xff0c;共分为两篇&#xff0…

虎年第一篇-CCNP-第九篇-BGP(一)

CCNP-第九篇-BGP(一) 首先,开工啦,祝大家2022新年快乐虎年大吉,虎虎生威哦BGP是一个网络工程师的分水岭 这是真的,BGP一般很大的企业才能用得上,或者ISP运营商 人家可以不用,但是你不能不会吧, BGP,CCIE必考 BGP有四节课基础,后面CCIE的部分还有 从BGP开始就要换一种理念 因为之…

rsync算法原理及使用

如果服务器之间需要保持某些文件的一致&#xff0c;我们可以使用scp来复制&#xff0c;如果需要长期保持一致&#xff0c;可以配合crontab脚本来使用。但是此时我们有更优的方式&#xff0c;就是rsynccrontab来实现定时增量传输保持文件一致。 rsync功能很强大&#xff0c;网上…

CCNP-第十篇-BGP(二)

CCNP-第十篇-BGP(二) 首先 BGP都基本上部署在PE,CE设备 PE:Provider edge 运营商边界 CE:Customer edge 用户边界 建立BGP 1.一般呢,是会使用环回口建立BGP 2.因为他是虚拟接口,很稳定,而且不会down,只要系统在,他就不会down;; 3.如果他down了就是整个网络都断了 4.节约接口使…

数据同步算法研究

1、引言 基于LAN或WAN的网络应用之间进行数据传输或者同步非常普遍&#xff0c;比如远程数据镜像、备份、复制、同步&#xff0c;数据下载、上传、共享等等&#xff0c;最为简单的做法自然就是对数据进行完全复制。然而&#xff0c;数据在网络上来回被复制多次后就会存在大量副…

CCNP-第十一篇-BGP(三)(精髓篇)

CCNP-第十一篇-BGP(三) BGP十三条线路原则(大点) 能修改的前7条,後6条是无法修改的,所以实际上7条 跟ACL一样,从上往下执行,比如第一条比较出来了就不会继续往下了 工作中比较多用的,第四条根据as-path一,权重-Weight 1.思科里面叫权重,是思科私有的,在华为叫首选优先级(Pre…

WSS 数据库表中的 UserInfo 表中的 tp_SystemId 字段的使用

在 WSS 的数据库中&#xff0c;UserInfo表的 tp_SystemId 记录的是用户登录验证时需要用到的数据&#xff0c;是此用户在 AD( Active Directory ) 中的 SID( Security ID )。此字段的数据很重要&#xff0c;不小心改动的话&#xff0c;此用户将不能登录 WSS。 这里介绍一下如何…

CCNP-第十二篇-BGP(四)

CCNP-第十二篇-BGP(四) 这次接着上次的选路原则继续干 上次是前6条,现在是跟后面的7条 BGP的选路原则默认是11条,最大可以配置后去到13条七.EBGP路由优于IBGP 这个不知道咋讲呢 如果A-B-C 那么A-B为IBGP B-C为EBGP的话 他们同时宣告一个条目 在两边对称的情况下,会选择EBGP宣告…

使用Module自定义网站定义(Site Definition)

在WSS SDK中有一篇文章介绍了使用Modules添加文件到网站定义中(可以在http://msdn.microsoft.com中搜索Using Modules to Add Files to a Site Difinition找到)&#xff0c;不过很多东西只是稍微提了一下&#xff0c;具体怎么操作并没有讲到。 一般的&#xff0c;我们可以用下…

CCNP-第十三篇-BGP(五)

CCNP-第十三篇-BGP(五) 这一节要讲下BGP联邦 干啥用的呢? 打破IBGP的传递问题 其实这个东东有点像BGP版本的NAT 啥意思呢? 我自己启动AS100 但是对外宣告200 通过EBGP打破IBGP的传递问题总有AS:1-65535 私有AS 65412-65535 网络环境 环境搭建好之后,R2和R3互为ibgp,as为65…

CCNP-第十五篇-VXLAN(一)

CCNP-第十五篇-VXLAN(一) 到了这个阶段呢,怎么说呢,简单的NP级别的交换我都跳过去了,但是后期会补, 所以这个衔接可能新手或者不会的看的有的迷茫 但是出自个人原因只好这么干了,VXLAN3篇差不多就到IE的MPLS,各种VPN 然后为什么先发第十六不发十五呢 十五是BGP的综合实验,暂时…