如何模拟带有USB打印机的并行(LPT)打印机?


18

我有一些旧版软件,只能在通过LPT端口连接的打印机上打印。但是,我需要使用的机器没有并行端口。另外,我的打印机是USB设备。

如何欺骗我的计算机,使我的USB打印机连接到lpt端口?

此外,这是用于办公室的。实施此解决方法时,我将具有管理员权限,但我正在寻找一种解决方案,该解决方案在设置完所有常规帐户后记录“常规”用户时可以使用。


1
我认为您的意思是LPT端口,而不是LTP端口。LPT代表“行式打印终端”,在指代打印机端口时与“并行”同义。有趣的是有一个LTP标签。可以改变吗?也许我想念一些东西。
2010年

@ boot13,您是正确的。
丹·奥康纳

Answers:


21

您可以通过将USB打印机用作连接到LPT1的虚拟“网络”打印机来欺骗Windows。

共享USB打印机

使用易于记忆的共享名,例如“打印机”。

将共享打印机连接为LPT1

NET USE LPT1: \\[Computer-Name]\Printer /PERSISTENT:YES

5
您无需弄乱回送适配器。只需使用USB连接正常安装打印机即可。然后分享。然后按上述方式使用NET USE。
Alan B

+1代表“共享和NET USE”技巧,尽管不需要环回适配器。需要注意的一件事是,如果用户的帐户没有密码,则需要修改“本地安全策略”(或适当的注册表项)以使此工作有效。
afrazier

我已经设法完成所有步骤,但是如果我的PC没有并行端口,使用时net use LPT2 \\Computer-9313\Parallel /PERSISTENT:YES我会得到,The command completed succesfully但在硬件设备上看不到LPT2,所以我不知道它的地址。
安德列斯(Andres)2013年

1
@Andres您是否忘了像上述在LPT2之后键入分号?
phuclv 2014年

1
那是冒号,而不是分号(; vs:)
Ian Macintosh

5

使用USB并行适配器没有任何意义。在这里,我们谈论的是在仅USB连接的硬件上使用非常古老的旧版软件。就我而言,是ZEBRA标签打印机。

我的解决方案是。

  1. 安装USB打印机及其驱动程序(只是查找连接到哪个USB端口)
  2. 将驱动程序的端口更改为FILE(并释放USB端口)
  3. 安装通用/纯文本驱动程序,并将端口更改为与第1点相同的逻辑USB端口
  4. 共享通用/纯文本打印机,以使其在VBA中轻松可见
  5. 将Microsoft Loopback适配器安装在固定的未使用IP地址上(否则,断开电缆连接后将看不到您的打印机)
  6. 按命令行前面的说明分配一个LPTx:端口(这适用于每个需要旧LPT的软件)

只需几行代码,您就可以像过去一样将ASCII码发送到打印机。

现在,您可以轻松地在VBA中打印(已通过Windows 7 64位和ZM400 Zebra打印机测试)

Open "\\Kb\ZM400" For Output As #1       'Kb = computer Name; ZM400 = Shared printer name
For rows = 1 To 37 ' send the first 37 rows of ASCII codes from the worksheet "STRINGS"
    Print #1, Worksheets("STRINGS").Cells(rows, 1).Value
Next
Close #1

2

也许看看WinPrint

获取由DOS应用程序生成的标准打印机输出,并将其转发到默认的Windows打印机。转换代码页,剥离空白页,支持BOX Drawings字符。适用于所有Windows平台。


2

使用DOS打印程序来操纵您所需设备的可用端口。您可以从此链接https://www.dropbox.com/s/gdx05sckmbqnast/dosprint.exe?dl=0下载 (dos打印)

https://www.dropbox.com/s/alf6hdd5fctepmo/dosprintui.exe?dl=0 (使用打印用户界面)

首先以管理员身份运行dosprint和dosprintui,然后双击dosprintui托盘图标,您可以获得要映射的可用端口列表,然后双击lpt1或in set按钮并选择要映射的所需打印机,然后单击好。BINGO现在可以打印到LPT1端口,您的USB打印机将为您打印。


2

DOS程序仍在商业领域中使用。Web上关于如何使它们在现代计算平台上正常工作的建议非常普遍。这对我有用。

我们需要使用的16位DOS程序驻留在即将被删除的32位Windows 2003服务器上。在此之前,使用组策略将程序的共享映射到来自主域的两台32位客户端计算机上。用于启动程序的.cmd文件的快捷方式是手动放置在客户端以及主域上的。该程序在Windows 8.1上运行良好。可以肯定地说,这是一个折衷方案,但是当从辅助域运行的DOS程序退出使用时,计算机将升级到64位Windows 8.1。

从程序进行打印是最大的挑战。此程序使用两个不同的并行打印机,但是该程序仅打印到单个端口,并且没有任何选项可以更改此行为。需要将支票打印到激光打印机吗?它需要连接到端口LPT1。是否需要将数据转储打印到点矩阵打印机?它也需要连接到端口LPT1。每天有两个人使用此程序,因此我们将使用他们的计算机,每台打印机一个。让我们安装第一台打印机:

  • 如果计算机具有物理DB-25(并行)端口,则可以在BIOS中将其禁用。Windows 8.1将不支持它,我们也不需要它。

  • 电缆到型号16899 USB到DB25并行打印机适配器用于将打印机连接到计算机。该适配器会自动安装,不会被识别为并行设备或LPT端口。

  • 现在打开设备和打印机。单击添加打印机,然后选择我所需的打印机未列出。在下一个对话框中,选择“使用手动设置添加本地打印机或网络打印机”,然后在下一个对话框中,选择“使用现有端口”。从列表中而不是LPT端口选项中,为USB选择一个虚拟打印机端口,即USB001或USB002。

  • 第一台打印机是Panasonic KX-P1191多模式点矩阵打印机。打印机未在询问驱动程序的对话框中列出,并且通过单击Windows Update来更新列表无济于事。松下支持站点的检查表明,此时打印机完全不受支持,但是松下技术支持专家帮助弄清楚了导致Windows 8.1附带的Epson FX Series 1(80)驱动程序的原因。它运作完美。

现在已安装打印机。但是它在端口USB001上,程序仅打印到端口LPT1。该解决方案相对简单,可以直接集成到用于启动程序的批处理文件中。让我们放学一些,在我们的打印机上耍个把戏:我们将共享它并以这种方式打印到LPT1。

  • 右键单击打印机,然后选择属性。共享打印机,不要在目录中列出它,只是为了好用而创建一个简短的共享名,然后确保在“安全性”选项卡下的“组或用户名”区域中列出了客户端计算机的用户。

  • 将要使用这些打印机进行打印的两个人创建了我的薪水,因此我给了他们Domain Admin权限。那可能是不必要的。两者都是主域中的用户,而不是辅助域中的用户,我不想花时间对权限问题进行故障排除。

现在修改批处理文件,并使用详细记录的net use命令来实现打印解决方案:

@echo off
::delete the printer
net use lpt1 /delete
::add the printer
net use lpt1 \\\COMPUTER\PRINTER /persistent:yes
::fire up the nasty ol' DOS program
<existing syntax used to start the program>

其中COMPUTER是计算机的名称,而PRINTER是打印机的共享名。使用Windows 8.1随附的“ HP LaserJet 1100(MS)”驱动程序,该过程在用于HP LaserJet 1100打印机的第二台计算机上同样有效。

-注意-

系统错误5:

确保在“安全性”选项卡下列出了该用户。可以删除“所有人”。用户是否需要Domain Admin特权?如果一切都在一个域中运行,可能不会。

系统错误66:

检查您的语法。您可能拼错了计算机,打印机的名称,还是想念冒号?根据Microsoft文档,只需要一个冒号。将不必要的冒号添加到lpt1 [:]会导致失败吗?

有关净使用的所有信息:https : //technet.microsoft.com/zh-cn/library/bb490717.aspx


0

市场上有很多“并行USB适配器”。您可以花10美元左右在网上购买一个,这可能是一个不错的起点。


问题不在于使打印机与计算机连接,而是与计算机连接。问题是使USB打印机像连接到LTP端口(虚拟LTP端口)一样工作。
丹·奥康纳

但是他没有并行端口,并且有USB打印机。
大卫说恢复莫妮卡

0

您没有说明要使用什么硬件,但是假设它是Wintel PC,则应该可以为此购买通用并行端口卡。除此之外,您还可以按照harrymc的建议使用NET USE对其进行重定向。


0

使用定制设计的基于Clipper的商务软件时,我处于同一职位。看了一些并行仿真软件以打印到USB打印机,该打印机虽然可以工作,但是有自己的问题。克服64位win10 no dos问题是一个真正的挑战。

我找到了Harbor HMG,在更改了几行代码后,将应用程序软件重新编译为32位。我还让我的应用程序将数据写入到临时文件中,这些文件是我使用Microsoft Access捕获的,可以发布一些很棒的格式化报告。哦,顺便说一句 现在,这些应用程序可在64位Windows 10中运行,并在内存和速度方面有了重大改进。另外,我将报告发送到USB线打印机或喷墨机或任何我选择的报告。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.