从 DOS 16 位应用程序打印到文件

从 DOS 16 位应用程序打印到文件

我有一个旧版应用程序,它使用 IPX/SP 进行联网,是一个 16 位 DOS 应用程序。无法访问源代码,无法更改任何内容。我只能在 Windows XP 下运行它。

尝试自动化某些流程,并需要将应用程序正在打印的内容重定向到文本文件。根据内容类型,应用程序会打印到 3 台不同的打印机,LPT1、LPT2、LPT3。

尝试使用旧实用程序“prn2file”,但不起作用。它注册正常

    prn2file "c:\temp\file1.txt" /p lpt2

并指出它正在将 LPT2 重定向到 c:\temp\file1.txt。它确实创建了文件,但无论我打印什么,它都是空的。我甚至无法从 DOS 命令提示符中打印它,它说“无法初始化 PRN”。

所以我听说 PRN2FILE 可能不再适用于较新版本的 Windows。没有确切的数据来说明“较新”是什么意思,但无论如何。所以我尝试了“printfil.com”的试用版,他们说他们可以处理这个问题。但还是发生了同样的情况 - 什么都没发生。永远无法打印。甚至从命令提示符也无法打印。他们的支持非常有帮助,并给出了很多建议,但就是不起作用。

尝试了 3 台不同的 Windows XP 计算机,在 VM 中尝试,结果相同。有点不明白这里发生了什么。

这似乎是一个非常简单的问题,但为什么它总是不起作用?有人有其他经过验证有效的选择吗?

答案1

创建仅文件打印机的这个旧程序可能在 XP 中起作用:

  • 转到“打印机”文件夹并选择“添加打印机”

  • 选择“本地打印机”

  • 选择端口时,选中“文件 - 打印到文件”旁边的框

  • 在“制造商”下设置“通用”,在右侧选择“通用/仅文本”

  • 命名打印机(fileprinter例如)

  • 完成安装。

  • 捕获 LPT1 来“欺骗” DOS 应用程序:

      net use lpt1 \\localpcname\fileprinter
    

现在,如果您在 DOS 应用程序中打印,应该会出现一个窗口,您可以在其中输入打印输出的路径和文件名。

相关内容