前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VB.NET 默认打印机设置及相关配置获取

VB.NET 默认打印机设置及相关配置获取

作者头像
一线编程
发布2019-10-08 17:57:54
1.8K0
发布2019-10-08 17:57:54
举报
文章被收录于专栏:办公魔盒办公魔盒

VB.NET利用winspool.drv设置默认打印机,通过PrintDocument获取打印机相关配置!

应用场景:

有时候我们会在工作中遇到需要静默批量打印文件,如PDF,xls,doc等文档,但是又不想用第三类库的时候(第三方一般都有打印限制),但又不能直接选择打印机的时候可采用,先获取打印机列表,然后设置列表中打印机先设置为默认打印机,然后直接静默打印即可!比较方便快捷!

视频演示


打印机相关类源代码

代码语言:javascript
复制
''**********************************************************************
''******* 微信公众号:VB小源码  *****************************************
''******* QQ群:344402874 ***********************************************
''******* QQ:463550067  ************************************************
'***********************************************************************

''' <summary>
''' 打印机相关设置类
''' </summary>
Public Class Cls_Print
    ''' <summary>
    ''' 引用winspool打印机默认设置
    ''' </summary>
    ''' <param name="Name"></param>
    ''' <returns></returns>
    <Runtime.InteropServices.DllImport("winspool.drv")>
    Private Shared Function SetDefaultPrinter(Name As String) As Boolean
    End Function

    ''' <summary>
    ''' 获取打印机列表
    ''' </summary>
    ''' <returns></returns>
    Public Shared Function GET_PTLIST() As ArrayList
        Try
            Dim PT As String, alist As New ArrayList
            For Each PT In Printing.PrinterSettings.InstalledPrinters
                alist.Add(PT)
            Next PT
            Return alist
        Catch ex As Exception
            Return Nothing
        End Try
    End Function
    ''' <summary>
    ''' 获取默认打印机名
    ''' </summary>
    ''' <returns></returns>
    Public Shared Function GET_DefaultPT() As String
        Try
            Using prtdoc As Printing.PrintDocument = New Printing.PrintDocument()
                Return prtdoc.PrinterSettings.PrinterName.ToString
                prtdoc.Dispose()
            End Using
        Catch ex As Exception
            Return Nothing
        End Try
    End Function

    ''' <summary>
    ''' 设置默认打印机
    ''' </summary>
    ''' <param name="PTNAME"></param>
    ''' <returns></returns>
    Public Shared Function SET_DefaultPT(ByVal PTNAME As String) As String
        If PTNAME IsNot Nothing Then
            If SetDefaultPrinter(PTNAME) = True Then
                Return PTNAME & "设置为默认打印机成功!"
            Else
                Return PTNAME & "设置为默认打印机失败!"
            End If
        Else
            Return "打印机名为空!"
        End If
    End Function
End Class

<左右滑动查看完整代码>


调用实例

代码语言:javascript
复制
Public Class FRM_PRINT
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Label2.Text = Cls_Print.GET_DefaultPT  ''获取当前默认打印机名
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ListBox1.Items.AddRange(Cls_Print.GET_PTLIST.ToArray)  ''获取打印机列表
    End Sub
    Private Sub ListBox1_DoubleClick(sender As Object, e As EventArgs) Handles ListBox1.DoubleClick
        Cls_Print.SET_DefaultPT(ListBox1.SelectedItem.ToString)  ''设置默认打印机
        Label2.Text = Cls_Print.GET_DefaultPT  ''获取当前默认打印机名
        MsgBox(Cls_Print.GET_DefaultPT & " --> 默认打印机设置成功!")
    End Sub
End Class

<左右滑动查看完整代码>


实例下载

代码语言:javascript
复制
https://www.lanzous.com/i6kqyxe

好啦!今天教程到这里结束了!


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 办公魔盒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档