如何使用 Delphi 使用打印机名称获取打印机索引?

How do I get the PrinterIndex using the Printer Name using Delphi?

我需要为标签、收据和“标准”(例如 A4)这三种不同的打印功能中的每一种分配一台打印机。我已经使用 listbox1.assign(printer.printers) 确定了所有可用的打印机,但似乎没有办法使用它来建立打印机的 PrinterIndex。我想将打印机名称和索引值存储在一个文件中,这样我就可以使用 printer.printerindex 为每种类型的打印作业分配打印机,而无需要求用户使用对话框选择打印机。

我是不是用错了方法,如果是这样,有人可以告诉我正确的方法吗?我以前不必直接使用 printers 单元。

在文件中保存打印机名称,而不是索引。

当您重新启动程序并读回打印机名称时。然后遍历所有打印机以查找哪一个具有已保存的名称(它可能已被删除或重命名)并使用该打印机。