我需要拦截发送到 Windows 上的 ESC/POS 打印机的数据并对其进行分析。
所以我想以纯文本形式获取数据,以便提取并理解发送到打印机的信息。
目前,我已经尝试使用 RedMon 将数据流发送到打印机端口。但是发送的数据是光栅图形的形式,即要打印的点,嵌入在 ESC/POS 命令中。
所以我想知道是否有人可以建议我如何获取文本格式的打印数据,以便能够从中提取一些信息。
我需要拦截发送到 Windows 上的 ESC/POS 打印机的数据并对其进行分析。
所以我想以纯文本形式获取数据,以便提取并理解发送到打印机的信息。
目前,我已经尝试使用 RedMon 将数据流发送到打印机端口。但是发送的数据是光栅图形的形式,即要打印的点,嵌入在 ESC/POS 命令中。
所以我想知道是否有人可以建议我如何获取文本格式的打印数据,以便能够从中提取一些信息。
发送到 ESC/POS 打印机的数据是嵌入了ESC /POS 命令的光栅数据。这是 ESC/POS 打印机驱动程序根据其输入生成的内容。这就是 RedMon 为您捕获的内容。
似乎您想查看发送到打印机驱动程序的输入。这意味着您必须找出哪些应用程序确实使用了打印机,并且您必须拦截到达打印机驱动程序的内容。
您没有说是否要在“实时”环境中设置拦截,或者是否仅用于临时测试。如果您想临时测试,您也可以执行以下步骤:
NNNNN.spl
,其中 NNNNN 是当前打印作业的编号。请参阅以下 3 个屏幕截图:
但是,如果您...会更容易(而不是使用 RedMon)
...只需启用名为“保留打印的文档”的打印机驱动程序设置:转到打印队列属性 => 选择“高级”选项卡 => 启用相应的复选框(见上面的左侧屏幕截图);
...鱼从 Windows 打印假脱机目录中假脱机打印作业;
...分析您的NNNNN.spl
文件:
在 Windows 8 上,这将是一个 XPS 文件。将其重命名为 NNNNN.xps,您可以使用内置的 XPS 查看器打开它。
在以前的 Windows 版本中,NNNNN.spl
将具有相应打印机驱动程序的文件格式(PostScript 用于 PostScript 驱动程序,XPS 用于 Microsoft XPS 打印机,ESC/POS 用于您的打印机,...)。相应地重命名它并在 XPS 或 PostScript 查看器中打开它。
如果您只想捕获,您可以创建一个指向工作站 IP 的 TCP/IP 打印机端口并运行我的 vclpdcap 工具。它监控 9100 或 515(RAW 或 LPR)并捕获数据并将其写入文件。
看看这里,如果您需要更多指导,请告诉我。
更新:http ://www.ballisticecho.com/articles/print-capture-lpd-9100
您可以将 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