如何基于VB.Net和VB6?获取打印机池的每个项目详细信息(如状态、页面、打印页面、文档名称);

如何基于VB.Net和VB6?获取打印机池的每个项目详细信息(如状态、页面、打印页面、文档名称);,vb.net,Vb.net,朋友们: 谁能帮我解决这个问题? 有关我的问题,请参阅随附的图片。 我想基于VB.net创建这样一个函数: Improts System.printing Public Function GetPrinterPoolDetails(ByVal PrinterName As String, ByVal sFile As String, ByRef HasPrinted As Integer, ByRef Pages As Integer,

朋友们:

谁能帮我解决这个问题? 有关我的问题,请参阅随附的图片。

我想基于VB.net创建这样一个函数:

Improts System.printing
    Public Function GetPrinterPoolDetails(ByVal PrinterName As String, ByVal sFile As String, ByRef HasPrinted As Integer, ByRef Pages As Integer,
                                 ByRef PrintingStatus As String, Optional ByVal OPeration As String = "") As Integer

    Dim Ps As PrintServer = New PrintServer()
    Dim PrintQueues As PrintQueueCollection = Ps.GetPrintQueues()
    Dim Filename As String = IO.Path.GetFileName(sFile)
    For Each Item As PrintQueue In PrintQueues
        If Item.Name.EndsWith(Filename) Then
            Item.Refresh()
            Dim Coll As PrintJobInfoCollection = Item.GetPrintJobInfoCollection()
            If Not Coll Is Nothing Then
                For Each jobinfo In Coll
                    If OPeration = "Cancel" Then
                        jobinfo.Cancel()
                        Exit For
                    End If
                    HasPrinted = jobinfo.NumberOfPagesPrinted
                    Dim Status As String = jobinfo.JobStatus
                    Dim PrintSubmittedDatetime As String = jobinfo.TimeJobSubmitted
                    Pages = jobinfo.NumberOfPages
                    Return Pages
                Next
            End If
            Exit For
        End If
    Next

End Function
Private Function PrintingMonitor() as boolean
  Dim PrinterName as string="HP LaserJet 1020"
  Dim FilenameWithoutPath  as string="Test.pdf"
  Dim Pages as integer=0
  Dim HasPrintedPages  as integer =0
  Dim Status as string =""
  Do
    Dim IsOver as boolean= GetPrinterPoolDetails("HP LaserJet 1020","Test.pdf",HasPrintedPages  ,Pages ,Status  ,"")
     LProgress.text="Printing Status:" & Status  & "Document For Printing is: " & "Test.pdf  HasDone:" & HasPrintedPages  & "/" & Pages
     Sleep (1000)
     Application.DoEvents
  loop while not IsOver and HasPrintedPages  <Pages
End Function
impots System.printing
公共函数GetPrinterPoolDetails(ByVal PrinterName为字符串,ByVal sFile为字符串,ByRef HasPrinted为整数,ByRef Pages为整数,
ByRef PrintingStatus作为字符串,可选ByVal操作作为字符串=”)作为整数
Dim Ps As PrintServer=新的PrintServer()
将PrintQueues设置为PrintQueueCollection=Ps.GetPrintQueues()
Dim文件名为String=IO.Path.GetFileName(sFile)
在PrintQueues中作为PrintQueue的每个项目
如果Item.Name.EndsWith(文件名),则
项目.刷新()
作为PrintJobInfoCollection=Item.GetPrintJobInfoCollection()的Dim Coll
如果不是Coll,那就什么都不是了
对于Coll中的每个jobinfo
如果操作=“取消”,则
jobinfo.Cancel()
退出
如果结束
HasPrinted=jobinfo.NumberOfPageSprint
Dim状态为字符串=jobinfo.JobStatus
Dim PrintSubmittedDatetime作为字符串=jobinfo.TimeJobSubmitted
Pages=jobinfo.NumberOfPages
返回页
下一个
如果结束
退出
如果结束
下一个
端函数
私有函数PrintingMonitor()作为布尔值
Dim PrinterName as string=“HP LaserJet 1020”
Dim filename withoutpath as string=“Test.pdf”
将页面设置为整数=0
Dim HasPrintedPages为整数=0
Dim状态为string=“”
做
Dim IsOver as boolean=GetPrinterPoolDetails(“HP LaserJet 1020”,“Test.pdf”,HasPrintedPages,Pages,Status,”)
LProgress.text=“打印状态:&&Status&”用于打印的文档是:&“Test.pdf HasDone:&&HasPrintedPages&“/”&Pages
睡眠(1000)
Application.DoEvents

循环,而不是IsOver,并已打印页面,根据打字错误的数量和一般语法问题-例如
导入系统。打印
为布尔值
-您是否在文本文件中开发此功能?您可以使用诸如VisualStudioCommunity(免费供私人使用)之类的IDE吗?这将有很大帮助。