打印机假脱机程序api副本数

本文关键字:副本 api 程序 假脱机 打印机 | 更新日期: 2023-09-27 17:53:14

我真的需要一些帮助,这是一个很多人在网上问的问题。我有不同的设置,尝试了不同的测试方法,非常令人沮丧。

第一次设置:

    本地打印机
  • 本地运行代码

  • 从pdf或记事本打印:成功(副本数量为2)

  • print from word: FAILED(拷贝数为1)

第二设置:

  • 共享的本地打印机

  • 本地运行代码

  • 从其他计算机打印到共享打印机

  • 拷贝数始终为1

那么每个人都错过了什么?当打印机仍然应该知道要打印什么时,一些字段丢失了会发生什么?当你从另一台电脑上打印时,也会发生什么?谁能告诉我为什么窗户里的东西这么可怕?所有东西都应该通过假脱机程序,那么为什么数据是错误的呢?

类型的问候!

打印机假脱机程序api副本数

打印机打印表格和页面,因此副本在某个阶段被转换为页面。

您获得的通知数据取决于正在打印的应用程序以及处理假脱机和呈现的系统和驱动程序组件。根据我的经验,这些数据是不可靠的,最好的数据是通过解析spool文件获得的。这可能包含也可能不包含拷贝数。

Word有"拷贝问题"已经很长时间了。据说有一个补丁可以解决这个问题,但另一种观点是,这是因为它使用了一种不寻常的打印方式。我将在这里引用一些链接内容:

与臭名昭著的Word拷贝计数错误…dmCopies文件是1在梅毒性心脏病。正确的值可以在SPL文件中的DEVMODE记录中找到(如果是EMF线轴)。

我发现的唯一其他方法是监视的PrintedPages字段JOB_INFO_2结构,当作业被发送到打印机时,并查看它是否是TotalPages的倍数。

[…]

发生的不是Word错误,而是Windows错误。Word调用startDoc总是将副本设置为1。之后调用DocumentProperties和在dmCopies中进行更改,并调用ResetDC进行更新。它这是一种奇怪的印刷方式,但没有错。问题是SHD文件和printer_info没有更新此信息,只是保持在StartDoc调用上设置Devmode信息。

但是对ResetDC的调用生成一个新的DevMode被保留在SPL文件。如果你钩上DocumentProperties,你也能得到那个信息API调用.

谢谢你的回答。当文档属性发生变化时,是否有一种方法可以捕获它们?

JOB_INFO_2结构确实具有与pages_print相同的total_pages。所以这不是一个解决方案。

SPL文件确实包含我测试的打印机的QTY,它是正确的。但我们测试了很多打印机,我们看到的数量并不总是设置。所以不是100%的解决方案。但已经是一个很好的退路了。

所以如果我可以捕捉文档属性而不调用SPL文件,那将是美妙的,因为我想这就是一切都是正确的。不是吗?