zoukankan      html  css  js  c++  java
  • 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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

  • 相关阅读:
    java的访问控制修饰符
    js将一个数组分割成二维子数组
    java的数组
    Java 变量类型
    java
    java的 %和 ^
    Python第三方库 -> 由于是ipynb格式,所以没有对应的输出结果
    获取浏览器历史记录 browserhistory
    虚拟机 CentOS 6.8 安装
    解决 django.db.utils.OperationalError: (1051, "Unknown table 'mydorm.users_studen t'")
  • 原文地址:https://www.cnblogs.com/laojiefang/p/2294577.html
Copyright © 2011-2022 走看看