如何基于VB.Net和VB6?获取打印机池的每个项目详细信息(如状态、页面、打印页面、文档名称);
朋友们: 谁能帮我解决这个问题? 有关我的问题,请参阅随附的图片。 我想基于VB.net创建这样一个函数:如何基于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,
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吗?这将有很大帮助。