【问题标题】:How to create a Printer object in VB如何在 VB 中创建打印机对象
【发布时间】:2016-11-16 13:11:39
【问题描述】:

在创建打印机对象时,我在 VB 6 中遇到了问题。 基本上,我需要创建一个打印机对象,以便我可以设置需要执行打印的正确托盘。

我有打印机名称。

我能在网上找到的所有代码都涉及遍历所有可用的打印机并找到与我们的打印机名称匹配的内容。

有没有一种方法可以直接从打印机名称创建打印机对象 prn

任何帮助将不胜感激。

【问题讨论】:

  • VB 6 或 VBA - 它是哪一个
  • 如果您指的是 IDE,那就是 VB 6。
  • 那么为什么要使用 VBA 标签?
  • 它们可能相似但不完全相同。它们的用法非常不同。

标签: vb6 printers network-printers


【解决方案1】:

你不能。 VB6 打印机集合只能通过索引而不是名称访问。见Visual Studio 6 Printer Object, Printers Collection

因此,您必须在集合中搜索您想要的打印机。例如:

Private Function FindPrinter(PrinterName As String) As Printer
  Dim i As Integer
  For i = 0 To Printers.Count - 1
    If Printers(i).DeviceName = PrinterName Then
      Set FindPrinter = Printers(i)
      Exit For
    End If
  Next i
  Exit Function
End Function

以上内容不处理您要查找的打印机不在集合中的情况。您需要添加逻辑来涵盖该条件 - 您想要做的是特定于您的特定任务和要求。此示例也是区分大小写的名称搜索,因此请记住这一点。

【讨论】:

  • 感谢您的回复。您提到的代码是我目前在我的应用程序中使用的代码。但是,当有大量打印机 (2500+) 时,这往往会变得非常慢。所以一直在寻找解决方法。
  • 除非您要切换打印机,否则您当然不需要每次都搜索打印机集合。在应用程序启动(或用户选择等)时搜索它,然后保留对您正在使用的打印机对象的引用。然后很少担心搜索打印机集合的性能。
猜你喜欢
  • 2011-09-16
  • 1970-01-01
  • 2021-04-05
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 2020-09-08
  • 1970-01-01
相关资源
最近更新 更多