我有一项不幸的任务,即在DBIII + / Clipper '87中开发的两个遗留应用程序上进行(最小)维护工作。
我可以完全访问源代码和最小的工具链,以便在需要时重新编译应用程序,但由于主要用户的各种(主要是心理上的)原因,我不允许从头开始重新实现它。
无论如何,虽然应用程序在XP下运行良好,但硬件支持正在成为一件苦差事。用户需要更换发生故障的打印机(具有并行接口的老式HP)和托管应用程序的486(!)桌面。
现在的主要问题是找到一台可以在XP下使用的打印机,可能通过USB(华硕EEE Box将是完美的,并且它不支持并行端口)并使其对DOS应用程序“可见”
到目前为止,我找到了一个解决方法:
http://geekswithblogs.net/dtotzke/articles/26204.aspx
加上一些实用程序:
http://www.dosprn.com/ http://www.dos2usb.com/index.htm http://www.printfil.com/english.htm
实用程序似乎更好,因为它们为旧的转义序列提供某种过滤器(例如Epson的Eps / P或HP方言),使其对打印机透明。 或者他们说,至少。
所以问题是:有没有人在XP下将旧DOS程序与现代打印机连接起来?有什么警告吗?您是否使用了列出的实用程序之一(或者我还没有找到的其他实用程序),如果是,您会推荐哪一个?
答案 0 :(得分:5)
我们通常会完全按照您的某个链接提及。也就是说,在Windows下安装打印机,无论它想要安装在哪个端口上(例如:USB等)。
接下来,共享打印机(假设工作站名为COMPUTER1,您的共享是HPPRINTER)。
接下来创建一个批处理文件来启动应用程序,它应该如下所示:
net use lpt1 /d
net use lpt1 \\COMPUTER1\HPPRINTER
<yourapp.exe>
在您的应用中将输出设置为LPT1。
还有其他更复杂的解决方案,但这是迄今为止最简单的解决方案。我们仍然有一个多年前建立的DOS应用程序,我们仍然积极营销和销售。这就是我们处理印刷的方式。它工作得很好。您还可以获得额外的好处,现在使用Windows对打印作业进行排队,以便暂停打印机队列等。打印机甚至可以关闭或缺纸,并且作业仍在Windows假脱机程序中排队。
警告:这假设新打印机将支持输出。如果它是一个'较旧的'HP LaserJet,那么它可能是PCL5,只需找到一个支持PCL5的设备,然后就可以了。
在过滤方面,不确定为什么需要这个。只要输出是PCL或Postscript或其他标准,那么您仍然可以找到支持该打印描述语言的打印机。如果你有疑虑,只需添加关于当前设备的评论,我可以提供关于兼容性的想法,因为我们每天处理这个问题。