LPD - 接收数据的长度始终相同

时间:2016-10-11 20:06:50

标签: c# virtual-printer

我正在使用this现有解决方案编写虚拟打印机。我有接收数据子命令的问题。

+----+-------+----+------+----+
| 03 | Count | SP | Name | LF |
+----+-------+----+------+----+
Command code - 3
Operand 1 - Number of bytes in data file
Operand 2 - Name of data file

每当我处理这个命令时,数据文件大小 - 计数 - 总是一些奇怪的大数字 - 125899906843000.我被困在这里,我不知道为什么会发生这种情况。有人知道应该在哪里出问题吗?感谢

编辑:

我已经找到问题所在。 Here是我自己问题的答案。问题是因为Microsoft发送了一个不可思议的巨大数字,而不是文件的实际大小(以字节为单位)。有两种方法可以解决这个问题:

  1. 编辑虚拟打印机的TCP / IP端口并启用LRP字节计数。这会强制Windows计算文件中的字节数,并在“接收数据文件”子命令中发送此值。
  2. 修改RPM以便它处理"未知长度文件"通过从发送数据文件的请求接收所有数据直到LPR客户端关闭连接为止的情况。

0 个答案:

没有答案