拦截发送到Windows打印机的数据(使用RedMon)

时间:2012-07-10 19:10:38

标签: java windows printing postscript redmon

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

所以我想以纯文本格式获取数据,这样我就可以提取并理解发送到打印机的信息。

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

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

3 个答案:

答案 0 :(得分:10)

发送的数据发送到ESC / POS打印机 IS 嵌入了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数据。
  6. 请参阅以下3个屏幕截图:


    然而,如果你......那就更容易(而不是使用RedMon)。

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

    • ...从Windows打印假脱机目录中假脱机的printjob;

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

        在Windows 8上
      • 这将是一个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