我需要拦截发送到Windows上的ESC / POS打印机的数据并进行分析。
所以我想以纯文本格式获取数据,这样我就可以提取并理解发送到打印机的信息。
目前,我已尝试使用RedMon将数据流发送到打印机端口。但是发送的数据是光栅图形,即要打印的点,嵌入在ESC / POS命令中。
所以我想知道是否有人可以建议我如何以文本格式获取打印数据,以便能够从中提取一些信息。
答案 0 :(得分:10)
将发送的数据发送到ESC / POS打印机 IS 嵌入了ESC / POS命令的栅格数据。这是ESC / POS打印机驱动程序从其输入生成的内容。这就是RedMon为你捕获的东西。
似乎您想看到发送到打印机驱动程序的输入。这意味着你必须找出哪些应用程序使用打印机,你必须拦截到达打印机驱动程序的内容。
您没有说是否要在“实时”环境中设置拦截,或者仅用于临时测试。如果您想暂时测试,可以选择执行以下步骤:
NNNNN.spl
,其中NNNNN是当前打印作业的编号。请参阅以下3个屏幕截图:
然而,如果你......那就更容易(而不是使用RedMon)。
...只需启用名为“保留打印文档”的打印机驱动程序设置:转到打印队列属性=>选择“高级”标签=>启用相应的复选框(参见上面的左侧屏幕截图);
...从Windows打印假脱机目录中假脱机的printjob;
...分析您的NNNNN.spl
文件:
这将是一个XPS文件。将其重命名为NNNNN.xps,您可以使用内置的XPS查看器打开它。
在以前版本的Windows上,NNNNN.spl
将具有相应打印机驱动程序的文件格式(PostScript for PostScript驱动程序,XPS for Microsoft XPS打印机,ESC / POS适用于您的打印机,... )。相应地重命名并在XPS或PostScript查看器中打开它。
答案 1 :(得分:0)
如果您只想捕获,可以创建一个指向工作站IP的TCP / IP打印机端口并运行我的vclpdcap工具。它监视9100或515(RAW或LPR)并捕获数据并将其写入文件。
看看这里,如果您需要更多指示,请告诉我。
http://www.ballisticecho.com/articles-and-downloads/print-capture-lpd-9100
答案 2 :(得分:0)
您可以将Epson POS打印机置于调试模式,打印输出数据的HEX转储。请参阅此pdf的第88页:http://www.pos.epson.com/epsonexpertTSG/Templates/POS_Developers_Details.aspx?NRMODE=Published&NRORIGINALURL=%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