1

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

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

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


编辑:

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

  1. 编辑虚拟打印机的 TCP/IP 端口并启用 LRP 字节计数。这会强制 Windows 计算文件中的字节数并在 Receive data file 子命令中发送该值。
  2. 修改 RPM 使其处理“未知长度文件”的情况,方法是从发送数据文件的请求中接收所有数据,直到连接被 LPR 客户端关闭。
4

0 回答 0