我正在试验一台Zebra TTP8200热敏打印机。 对于我的应用程序,我需要不断打印绘图仪types的迹线,直到用户点击一个停止button。 我已经玩了ZPL语言,我可以成功地生成位图数据,并通过输出ZPL作为原始数据一次将我的位图转储出一行(或几行)。
我正在使用一些微软的演示代码来输出原始数据到打印机,这很好,一个问题吧:后台打印程序。 事实certificate,每次我使用MS rawprn.exe代码输出一些数据时,它实际上被假脱机为打印作业,然后传输到打印机。 这需要10秒才能通过假脱机程序,显然太慢了。 在驱动程序中禁用假脱机程序并没有帮助,这只是意味着程序在作业通过假脱机程序并打印完成时挂起。
有没有办法绕过假脱机程序,并直接输出数据到这台USB打印机? 到目前为止,我的研究还没有发现任何可能在Windows API中寻找的东西。 理想情况下,我想能够像使用串行打印机一样使用打印机 – 打开端口并input数据。
提前非常感谢任何提示!
Java Windows UTF-8(unicode)打印
检查打印机是否连接
Windows后台打印程序事件API不会生成networking打印机的事件
打印机后台监视器
有关3MF文件格式的信息(用于3D打印)
在屏幕菜单上打开文本variables
当用户按下打印时运行脚本,而不是在脚本结束之前启动假脱机(linux,cups)
Windows – 将程序用作虚拟打印机?
如何将数据发送到现代打印机? PDF,PostScript,HPGL等
如何在C#中设置Windows默认打印机?
如果USB打印机可用作COM端口,则只需写入COM端口即可。 像这样,从DOS提示符下:
dir > com1
前面的例子将把dir命令的结果输出到打印机。
或者,这是另一个例子:
copy file.txt com1
输出格式正确的ZPL数据将比纯文本更难。 但是,我已经从Linux使用Ruby(和Epson / ESC命令)得到了这个工作。
有没有办法绕过假脱机程序,并直接输出数据到这台USB打印机?
是的,一点没错。 它被嵌入到大多数操作系统中,通过USB打印原始数据只是比以太网和COM / LPT少一些。 请注意,许多应用程序(例如记事本)无法打印原始文件,因此您的应用程序也需要支持此功能。
为您的USB打印机安装适当的驱动程序。 检查打印机属性以查看它使用的是哪个USB端口。 可能是USB001等
使用设备和打印机,添加另一台打印机。 本地端口,选择刚刚创建的端口(例如USB001)注意:某些版本的Windows有自动检测的复选框,如果有的话,取消选中。
制造商:通用,打印机:通用/纯文本
使用当前安装的驱动程序
给打印机一个与已经创建的打印机名称不同的名称,即Zebra TTP8200 Raw。
不要分享
不要打印测试页,完成
现在使用原始打印应用程序,使用新创建的打印机。
PS这些指令也可以在这里作为Java开源原始打印教程的一部分。 该项目也为其他平台(Ubuntu,OS X)提供了教程。
http://qzindustries.com/TutorialRawWin
-Tres
您应该尝试下面的链接中概述的方法。 这使您可以将原始数据发送到打印机。
http://support.microsoft.com/kb/322091/en-us
感谢您的意见。
经过更多的挖掘,我发现这个有趣的文章使用由usbprint.sys提供的Windows打印机功能。 有一些黑客的示例代码似乎工作。 我想我会走这条路。
再次感谢您的建议。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。