8

我需要拦截发送到 Windows 上的 ESC/POS 打印机的数据并对其进行分析。

所以我想以纯文本形式获取数据,以便提取并理解发送到打印机的信息。

目前,我已经尝试使用 RedMon 将数据流发送到打印机端口。但是发送的数据是光栅图形的形式,即要打印的点,嵌入在 ESC/POS 命令中。

所以我想知道是否有人可以建议我如何获取文本格式的打印数据,以便能够从中提取一些信息。

4

3 回答 3

11

发送到 ESC/POS 打印机的数据是嵌入了ESC /POS 命令的光栅数据。这是 ESC/POS 打印机驱动程序根据其输入生成的内容。这就是 RedMon 为您捕获的内容。

似乎您想查看发送到打印机驱动程序的输入。这意味着您必须找出哪些应用程序确实使用了打印机,并且您必须拦截到达打印机驱动程序的内容。

您没有说是否要在“实时”环境中设置拦截,或者是否仅用于临时测试。如果您想临时测试,您也可以执行以下步骤:

  1. 暂停打印队列(上方屏幕截图,下方)。
  2. 可选:将驱动程序从 ESC/POS 更改为 PostScript 或 Microsoft XPS。如上所述,在打印机属性对话框上的同一“高级”选项卡上执行此操作。(右下方截图)。
  3. 打印。
  4. 检索在假脱机目录中等待的假脱机文件。在 Windows 8 上,默认情况下为C:\Windows\System32\spool\PRINTERS。假脱机文件被命名NNNNN.spl,其中 NNNNN 是当前打印作业的编号。
  5. 分析 PostScript 或 XPS 数据。

请参阅以下 3 个屏幕截图:

  


但是,如果您...会更容易(而不是使用 RedMon)

  • ...只需启用名为“保留打印的文档”的打印机驱动程序设置:转到打印队列属性 => 选择“高级”选项卡 => 启用相应的复选框(见上面的左侧屏幕截图);

  • ...鱼从 Windows 打印假脱机目录中假脱机打印作业;

  • ...分析您的NNNNN.spl文件:

    • 在 Windows 8 上,这将是一个 XPS 文件。将其重命名为 NNNNN.xps,您可以使用内置的 XPS 查看器打开它。

    • 在以前的 Windows 版本中,NNNNN.spl将具有相应打印机驱动程序的文件格式(PostScript 用于 PostScript 驱动程序,XPS 用于 Microsoft XPS 打印机,ESC/POS 用于您的打印机,...)。相应地重命名它并在 XPS 或 PostScript 查看器中打开它。

于 2012-09-30T08:32:10.440 回答
2

如果您只想捕获,您可以创建一个指向工作站 IP 的 TCP/IP 打印机端口并运行我的 vclpdcap 工具。它监控 9100 或 515(RAW 或 LPR)并捕获数据并将其写入文件。

看看这里,如果您需要更多指导,请告诉我。

更新:http ://www.ballisticecho.com/articles/print-capture-lpd-9100

于 2012-10-05T01:41:28.580 回答
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

于 2012-10-06T02:56:09.983 回答