dmPaperSize = DMPAPER_USER与dmPaperSize = 0相同吗?

时间:2012-02-02 16:29:24

标签: c++ winapi printing

我在DEVMODE docs中看到了这段让我感到困惑的段落。

  

dmPaperSize

     

仅适用于打印机设备,选择要打印的纸张尺寸。   如果纸张的长度和宽度,该成员可以设置为零   都由dmPaperLength和dmPaperWidth成员设置。除此以外,   dmPaperSize成员可以设置为更大的设备特定值   大于或等于DMPAPER_USER或以下预定义之一   值。

在其中他们说dmPaperLength和dmPaperWidth仅在dmPaperSize = 0时使用。他们谈论它的方式,似乎dmPaperLength和dmPaperWidth不应该与DMPAPER_USER一起使用。

这就是我觉得令人困惑的事情。我认为DMPAPER_USER意味着使用自定义页面大小。它与指定0不同吗?如果dmPaperLength和dmPaperWidth不能与DMPAPER_USER一起使用,如何指定自定义大小?

2 个答案:

答案 0 :(得分:3)

看起来有一个Bug in the documentation

根据The folks over at codeguru,您应该使用DMPAPER_USER而不是0.该讨论主题中有许多代码示例。

答案 1 :(得分:1)

根据您提供的文档片段判断,DMPAPER_USER被描述为“设备特定值”。对我来说,这意味着该值的解释留给了打印机驱动程序本身,dmPaperLength和dmPaperWidth的使用将取决于驱动程序。