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

mab*_*cha 8 java windows printing postscript redmon

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

因此,我希望以纯文本格式获取数据,以便我可以提取并理解发送到打印机的信息.

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

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

Kur*_*fle 11

这是将数据发送到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.splspool文件名为NNNNN是当前printjob的编号.
  5. 分析PostScript或XPS数据.

看到这3个截图:

  


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

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

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

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

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

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