VB打印时调出打印机的设置
象EXCEL里这样:  打印-----》预览----选项-------调出打印机的设置 
(因为是标签打印机,里面有个翻转打印,要用这个)Private Sub Command1_Click() 
Dim BeginPage, EndPage, NumCopies, i 
' 设置“取消”为 True 
CommonDialog1.CancelError = True 
On Error GoTo ErrHandler 
' 显示“打印”对话框 
CommonDialog1.ShowPrinter 
' 从该对话框取得选定的值 
BeginPage = CommonDialog1.FromPage 
EndPage = CommonDialog1.ToPage 
NumCopies = CommonDialog1.Copies 
For i = 1 To NumCopies 
' 此处放置将数据发送到打印机的代码 
'如 Form1.PrintFormNext i 
Exit Sub 
ErrHandler: 
' 用户按了“取消”按钮 
Exit Sub 
End Sub 但是 : 调出后对属性进行的修改无效, 
        比如对打印机的属性修改为横向,实际打印出来还是没有变为横向 
  怎样使得对属性的修改有效 
谢谢 

解决方案 »

  1.   

    摘自MSDN
    CommonDialog 控件(“打印”对话框)
    通过使用 CommonDialog 控件的 ShowPrinter 方法可显示“打印”对话框。“打印”对话框可用以指定打印输出方式。可以指定被打印页的范围,打印质量,打印的份数等等。这个对话框还包含当前安装的打印机的信息,并允许配置或重新安装缺省打印机。
    注意 这个对话框并不给打印机传送数据,只是指定希望打印数据的情况。如果 PrinterDefault 属性为 True,可以使用 Printer 对象按选定的格式打印数据。
    在运行时,一旦“打印”对话框中作出选择,下列属性即包括与该选择有关的信息:
    属性 决定 
    Copies 打印的份数。 
    FromPage 开始打印页。 
    ToPage 结束打印页。 
    hDC 所选打印机的设备描述体。
    LZ:注意红色文字说明,调用CommonDialog 控件(“打印”对话框),只是指定希望打印数据的情况,许多情况下需写代码来满足要求。 
      

  2.   

    LZ:你要横向打印需用代码实现:
    Orientation 属性
    返回或设置一个值,该值指出文档是以纵向还是横向的方式被打印。在设计时是不可用的。
    语法
    object.Orientation [= value]
    Orientation 属性的语法包含下面部分:
    部分 描述 
    Object 对象表达式,其值是“应用于”列表中的一个对象。 
    Value 一个决定页方向的值或常数,“设置值”中有详细描述。 
    设置值
    value 的设置值为:
    常数 值 描述 
    VbPRORPortrait 1 文档打印以纸的窄边作顶部。 
    VbPRORLandscape 2 文档打印以纸的宽边作顶部。
    VB的CommonDialog 控件(“打印”对话框)无法直接设置纸张的打印方向。而且CommonDialog 控件(“打印”对话框)的功能远差于文件打开等其它设置。
      

  3.   

    Private Sub Command1_Click()
        Dim BeginPage, EndPage, NumCopies, i    ' 设置“取消”为 True
        CommonDialog1.CancelError = True    On Error GoTo ErrHandler    ' 显示“打印”对话框
        CommonDialog1.ShowPrinter    ' 从该对话框取得选定的值
        BeginPage = CommonDialog1.FromPage
        EndPage = CommonDialog1.ToPage
        NumCopies = CommonDialog1.Copies
        Printer.Orientation = CommonDialog1.Orientation
        '很多这样的使用
        For i = 1 To NumCopies
            Me.PrintForm
        ' 此处放置将数据发送到打印机的代码
        Next i    Exit Sub
    ErrHandler:
        ' 用户按了“取消”按钮
        Exit Sub
    End Sub