我需要拦截发送到Windows上的ESC / POS打印机的数据并进行分析。
所以我想以纯文本的方式获取数据,以便我可以提取并理解发送给打印机的信息。
目前,我已经尝试使用RedMon来获取发送到打印机端口的数据stream。 但是发送的数据是光栅graphics的forms,即要打印的点,embedded在ESC / POS命令中。
所以我想知道是否有人可以build议我如何获得文本格式的打印数据,以便能够从中提取一些信息。
发送到ESC / POS打印机的数据是用ESC / POS命令嵌入的光栅数据。 这是ESC / POS打印机驱动程序从其输入生成的内容。 这就是RedMon为你所做的。
似乎你想看到发送到打印机驱动程序的输入 。 这意味着您必须找出哪些应用程序使用打印机,并且必须拦截到达打印机驱动程序的内容。
您不会说如果您想在“实时”环境中设置截取,或者仅用于临时测试。 如果您想临时测试,可以选择执行以下步骤:
NNNNN.spl
名为NNNNN.spl
,其中NNNNN是当前打印作业的编号。 看到这3个截图:
但是,如果你…更容易(而不是使用RedMon)…
…只需启用名为“保留打印文档”的打印机驱动程序设置即可:转到打印队列属性=>选择“高级”选项卡=>启用相应的复选框(请参阅上面的左侧截图);
…从Windows打印后台打印目录钓鱼后台打印作业;
…分析你的NNNNN.spl
文件:
在Windows 8上,这将是一个XPS文件。 重新命名为NNNNN.xps,您可以使用内置的XPS查看器打开它。
在以前版本的Windows上, NNNNN.spl
将具有相应打印机驱动程序(PostScript驱动程序的PostScript,Microsoft XPS打印机的XPS,打印机的ESC / POS等)的文件格式。 重命名它,并在XPS或PostScript查看器中打开它。
你可以把爱普生POS打印机调试模式,他们将打印输入数据十六进制转储。 请参阅此pdf的第88页: http : //www.pos.epson.com/epsonexpertTSG/Templates/POS_Developers_Details.aspx? NRMODE = Published&NORORIGINALURL =% 2fdevelopers%2ftechresdetails%2ehtm%3fproductpk%3d642&NRNODEGUID =% 7b934F5A6D-E01A-40B1- B2B0 -648C1EC68047%7D&NRCACHEHINT = NoModifyGuest&productpk = 642
要了解这一点,如果您注册并同意他们的条款,可以获得Epson ESC / POS SDK: https : //www.epsonexpert.com/ee/prelogin/registration.htm
如果你只是想捕获你可以创建一个TCP / IP打印机端口,指向一个工作站的IP,并运行我的vclpdcap工具。 它监视9100或515(RAW或LPR)并将数据捕获并写入文件。
看看这里,如果你需要更多的指导让我知道。
http://www.ballisticecho.com/articles-and-downloads/print-capture-lpd-9100