所有打印机都有相同的dmpaper_A4值吗?

时间:2015-10-22 04:40:34

标签: c# windows winapi printing printers

我正在开发打印机设置功能。 Microsoft具有DeviceCapabilities API,可让您检索打印机设置信息。

该函数使用dmPaperSize作为纸张大小,DMPAPER_A4是dmPaperSize中的成员之一。 A4纸定义为DMPAPER_A4,在我的打印机中值为9。我的问题是DMPAPER_A4对于所有打印机是否总是9?

对于dmDefaultSource,dmDefaultSource的所有成员是否在每台打印机上都有相同的值(如果它可以安装在Windows中)?

感谢。

1 个答案:

答案 0 :(得分:0)

是的,DMPAPER_A4在Windows SDK头文件中定义为9。这意味着A4纸张尺寸将在所有打印机上标识为值9。因此,如果您需要在无法使用Windows头文件的平台上检查该值,则可以安全地假设9是A4纸张大小。

理论上,微软可以改变这个价值,因为他们只保证常量DMPAPER_A4代表A4纸,而不是它总是有价值9.但实际上,微软绝不会这样做。如果您无法使用官方常量名称,他们将通过这样的移动打破数百个应用程序,因此您应该安全地编码值9。

对于dmDefaultSource,具有文档名称或值的Win32打印子系统的所有成员对于所有打印机都是相同的。不符合Windows标准的打印机无法在Windows上运行。