使用PrinterUtility无法打印至本地打印机,报错“找不到网络名称”
排查网络打印机连接错误(The Network Name Cannot Be Found)
问题背景
参考YouTube教程使用以下VB.NET代码执行二维码打印操作:
Dim printRes As Integer = 0 Dim obj As EscPosEpsonCommands.EscPosEpson = New EscPosEpsonCommands.EscPosEpson() Dim byteValue() As Byte = New Byte() {} byteValue = PrintExtensions.AddBytes(byteValue, obj.QrCode.Print("12345", PrinterUtility.Enums.QrCodeSize.Medio)) Dim printerPath = My.Settings.PrinterPath PrinterUtility.PrintExtensions.Print(byteValue, printerPath)
PrinterPath配置信息:
Name: PrinterPath Type: String User: User Value: \\FILINBSB-L01\\EPSON TM-T82II Receipt5
执行代码时触发错误提示:The Network Name Cannot Be Found
排查步骤
校验打印机路径格式
网络打印机的标准路径格式为\\计算机名\打印机共享名,注意共享名前是单个反斜杠。你的配置里写了\\FILINBSB-L01\\EPSON...,这是VB代码中的转义写法,需确认My.Settings中实际存储的是\\FILINBSB-L01\EPSON TM-T82II Receipt5(共享名前仅一个反斜杠)。若配置文件直接填写,无需转义,直接用单斜杠即可。验证网络可达性
- 打开文件资源管理器,输入
\\FILINBSB-L01,检查能否访问目标计算机的共享资源。若无法访问,可能是:- 目标计算机名
FILINBSB-L01拼写错误,或网络无法解析该名称(可尝试用IP地址替代计算机名,比如\\192.168.x.x\EPSON TM-T82II Receipt5) - 本机与打印机所在电脑不在同一局域网,或防火墙/杀毒软件拦截了共享访问
- 目标计算机名
- 若能访问目标计算机,确认是否存在
EPSON TM-T82II Receipt5这个共享打印机,核对共享名称的大小写、空格、特殊字符是否完全一致(打印机共享名可能与显示名称不同)。
- 打开文件资源管理器,输入
检查打印机共享权限
在打印机所在的电脑上操作:- 打开「设备和打印机」,右键目标打印机→「打印机属性」→「共享」选项卡,确认已勾选「共享这台打印机」,并核对共享名称。
- 查看共享权限设置,确保当前登录用户或所属用户组拥有「打印」权限。
绕开代码直接测试打印机
跳过代码,手动添加网络打印机并打印测试页:- 打开「设备和打印机」→「添加打印机」→「添加网络、无线或Bluetooth打印机」
- 手动输入路径
\\FILINBSB-L01\EPSON TM-T82II Receipt5,若添加失败,说明是网络或共享配置问题,与代码无关;若能正常打印测试页,再回到代码排查路径传递是否有误。
确认打印工具类的参数要求
检查PrinterUtility.PrintExtensions.Print方法是否对打印机路径有特殊格式要求,比如是否需要特定前缀、是否接受端口名/队列名而非共享路径。可通过本地打印机测试代码逻辑是否正常,排除代码自身问题。
内容的提问来源于stack exchange,提问作者Ibanez1408
相关产品推荐
相关产品推荐

