【问题标题】:Send text file to Shared Printer将文本文件发送到共享打印机
【发布时间】:2021-04-14 17:07:16
【问题描述】:

我有一个 VB 程序,它使用 ZPL 创建条形码布局和信息,然后将其保存到 txt 文件,然后我使用 File.Copy 将文本文件从保存位置复制到 Zebra 打印机,这与直接连接到安装了程序的工作站的打印机,但是我试图为多个工作站使用同一台打印机,因为我们不需要每个工作站一台打印机(理想情况下)。我在已安装的工作站上“共享”了打印机(通过 USB 连接),我能够在其他工作站上查看和设置共享,因此它显示在工作站打印机列表中(所以我知道计算机可以看到共享),但是,当我尝试 File.Copy(TextFileLocation,\SHARECOMP\ZebraPrinterShareName 时,我收到“拒绝访问路径 \SHARECOMP\ZebraPrinterShareName”错误。

有没有办法可以将此文件发送到我的 VB 程序中的共享打印机,或者我需要做些什么来允许复制发生并删除拒绝访问错误?

非常感谢您的建议

【问题讨论】:

  • 您是否确保针对目标计算机(在本例中为 SHARECOMP)进行了正确的身份验证?
  • 另一个选项,取决于实际的斑马打印机。想想一些高端的也有一个内置的 ftp 来上传文件。虽然通过usb连接可能会在这上面塞住塞子
  • @Sideways 我以什么方式对目标机器进行身份验证?我在打印机列表中有共享,但我只是在尝试使用简单的 File.Copy 来移动文件?
  • 您通过普通的Windows身份验证进行身份验证,例如,您可以调用WNetAddConnection2连接到Windows机器并建立连接。我只是想确保您可以访问机器,因为这似乎是错误原因。如果有,我假设您可以通过 Windows 资源管理器将文件复制到文件夹中?
  • 你可以试试 spooler API...

标签: vb.net printing barcode-printing network-printers zpl-ii


【解决方案1】:

共享名称的UNC path 看起来不正确。 Windows 中的 UNC 路径应以 2 个反斜杠字符开头,如下所示:

\\SHARECOMP\ZebraPrinterShareName

如果将您的 UNC 路径更改为以 2 个反斜杠字符开头不起作用,您可以尝试使用 Windows 命令提示符下的“net use”命令将共享打印机映射到 LPT 端口。

net use lpt3 \\SHARECOMP\ZebraPrinterShareName /PERSISTENT:YES

运行此命令后,您可以在复制命令中引用映射的 LPT 端口:

File.Copy(TextFileLocation,LPT3)

【讨论】:

  • 是的,这是我在 \\ 的一个拼写错误,我将尝试使用 NET USE 并让您知道它是如何进行的。我知道我可以访问共享打印机,因为我可以将它添加到本地打印机列表中。
  • 我已经设法进行 NET USE 并且返回成功,但是我如何在 VB 程序的 File.Copy 中引用 LPT3,就像我输入它一样,LPT3 不是t 声明或引用任何东西,因此它不会构建,如果我将它包含在“”中,它仍然不明白“LPT3”是什么?我试图运行副本 C:\FilePath LPT3 并得到拒绝访问响应。
  • LPT 是一种“行式打印机”设备。这是一个遗留端口类型。尝试引用为 LPT3: 如 File.Copy(TextFileLocation, "LPT3:")。如果这不起作用,您可以尝试使用此处描述的方法复制到 LPT3 端口:stackoverflow.com/questions/22836180/…
猜你喜欢
  • 1970-01-01
  • 2010-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-01
  • 1970-01-01
  • 2013-07-01
  • 1970-01-01
相关资源
最近更新 更多