如果直接打印到打印机,打印机设置对话框的所有扩展属性都将起作用,例如装订、缩放到 50% 或在文档上制作水印。它们对于打印机装订器按预期工作非常重要。
但如果我先打印到文件,然后将文件复制到打印机,HP Laserjet (PCL) 上的所有扩展属性都会丢失。
为了重现这一点,我也在 Delphi 中用一个非常简单的代码进行了模拟。在正常打印到打印机后按预期工作,我只将 DocInfo 中的 lpszOutput 更改为“...\test.prn”(不是更多!)并且已经生成了 prn 文件。然后我以二进制模式打开文件并将其写入同一台打印机(“StartDocPrinter”、“WritePrinter”、“EndDocPrinter”)。然后文档打印正确,但是扩展属性中的所有设置都丢失了,没有缩放,没有水印..
我想,打印机应该得到完全相同的二进制数据流,但是请问这可能是什么原因,显然驱动程序将不同的内容写入 prn 文件和不同的打印机?还是有一些我必须通过代码设置的标志或命令?是惠普特有的问题吗?提前致谢。