我正在试验一台Zebra TTP8200热敏打印机。 对于我的应用程序,我需要不断打印绘图仪types的迹线,直到用户点击一个停止button。 我已经玩了ZPL语言,我可以成功地生成位图数据,并通过输出ZPL作为原始数据一次将我的位图转储出一行(或几行)。
我正在使用一些微软的演示代码来输出原始数据到打印机,这很好,一个问题吧:后台打印程序。 事实certificate,每次我使用MS rawprn.exe代码输出一些数据时,它实际上被假脱机为打印作业,然后传输到打印机。 这需要10秒才能通过假脱机程序,显然太慢了。 在驱动程序中禁用假脱机程序并没有帮助,这只是意味着程序在作业通过假脱机程序并打印完成时挂起。
有没有办法绕过假脱机程序,并直接输出数据到这台USB打印机? 到目前为止,我的研究还没有发现任何可能在Windows API中寻找的东西。 理想情况下,我想能够像使用串行打印机一样使用打印机 – 打开端口并input数据。
提前非常感谢任何提示!
如果USB打印机可用作COM端口,则只需写入COM端口即可。 像这样,从DOS提示符下:
dir > com1
前面的例子将把dir
命令的结果输出到打印机。
或者,这是另一个例子:
copy file.txt com1
前面的例子将输出file.txt
的内容到打印机。
输出格式正确的ZPL数据将比纯文本更难。 但是,我已经从Linux使用Ruby(和Epson / ESC命令)得到了这个工作。
有没有办法绕过假脱机程序,并直接输出数据到这台USB打印机?
是的,一点没错。 它被嵌入到大多数操作系统中,通过USB打印原始数据只是比以太网和COM / LPT少一些。 请注意,许多应用程序(例如记事本)无法打印原始文件,因此您的应用程序也需要支持此功能。
现在使用原始打印应用程序,使用新创建的打印机。
PS这些指令也可以在这里作为Java开源原始打印教程的一部分。 该项目也为其他平台(Ubuntu,OS X)提供了教程。
http://qzindustries.com/TutorialRawWin
-Tres
您应该尝试下面的链接中概述的方法。 这使您可以将原始数据发送到打印机。
感谢您的意见。
经过更多的挖掘,我发现这个有趣的文章使用由usbprint.sys提供的Windows打印机功能。 有一些黑客的示例代码似乎工作。 我想我会走这条路。
再次感谢您的建议。