|
|
1
2
DocumentProperties 将fMode设置为DM_(在_提示符中)。然后将生成的DEVMODE保存到磁盘。当我们进行打印时,我们捕获当前DEVMODE,设置存储的DEVMODE,启动打印,然后恢复原始DEVMODE。 这实际上效果很好。有时候,打印驱动程序会更新并导致存储的DEVMODE中断,但这种情况并不经常发生,用户很容易修复。
提示:如果您尝试此操作,请确保以二进制输出流的形式写入磁盘。在我对这种方法的初始评估中,我意外地将输出流设置为文本输出流。在许多情况下,情况都会很好,但对于某些打印机(在DEVMODE私有数据中使用了高阶字节)来说,情况会突然发生变化。这是一个愚蠢但容易犯的错误,而且一个很好的解决方案被搁置了一段时间。 |
|
|
2
1
设置这样的功能可能很棘手,尤其是如果驱动程序不遵循Microsoft的打印指南。尽管如此,我们在System.Drawing.Printing.PrinterSettings方面取得了一些成功。您可以设置PaperSource,但我不确定您是否可以设置默认值。 PrinterSettings - Changing, Storing and Loading Printer Settings 另一种可能有效但可能不适用于您的方法是确定您需要的少量设置。安装带有这些(即:纸盘1、纸盘2)设置的打印机。然后只需将默认打印机切换为“打印”。这不是你想要的,但可能会有帮助。 在这些情况下,我们通常会让第三方应用程序将数据写入我们监控的文件夹,然后我们自己提取文件并解析Postscript或PCL,然后更改纸盘,然后发送到目标设备。听起来简单多了。 |
|
|
3
1
dmDefaultSource控制托盘。不幸的是,您希望将其设置为不同的值取决于您的驱动程序,因为这是一个箱子号,不一定与打印机上打印的纸盘号相同。
|
|
|
4
0
最近,我不得不在一次旅行中做一些非常类似的事情 specific printer driver 它需要一个特定于供应商的SDK。托盘似乎没有出现在DEVMODE或任何其他PRINTINFO_*结构中,因此我想我应该向打印机供应商发送电子邮件。 AutoIT . 其次是将注册表转储到文件,更改驱动程序设置,再次转储注册表,并比较差异(可能有效,也可能无效)。 |
|
|
5
0
据我所知,打印机由打印机驱动程序通过发送SNMP或PJL命令来控制。但并非所有打印机都完全实现这些命令集。 对于我在以下位置找到的HP打印机: http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?lang=en&cc=us&objectID=bpl07282&jumpid=reg_R1002_USEN 一些PJL命令(也有一些与托盘相关的命令)。 我不确定这是否有帮助,但将其作为未来搜索的提示。。。 |
|
|
PHPLover · “支持PHP扩展或功能的端口”实际上是什么意思? 1 年前 |