创建C#应用程序以配置打印机页面设置

时间:2011-09-15 15:35:31

标签: c# windows winapi registry printers

我希望在我的工作场所部署一个c#应用程序,它定义了默认的纸张大小。没什么特别的。它的工作原理是调用windows.win32并使用注册表类写入注册表。

尽管我付出了最大的努力,但我仍无法找到相关的注册表项以设置纸张尺寸和注册的打印机。有人可以帮忙吗?

干杯!

3 个答案:

答案 0 :(得分:2)

不支持更改注册表设置。

正确的方法是使用DEVMODE结构。

DocumentProperties函数底部的备注描述了将新设置(例如纸张大小)与现有配置合并的正确方法。

不要担心它描述了如何更改应用程序的设置。在SetPrinter调用level 8函数替换最后一步(CreateDC)以更改该打印机的全局默认值(或使用级别9更改每个用户的默认值)。

在C ++中执行此操作会更容易,因为您可以使用Windows提供的头文件。所涉及的结构非常复杂,获得正确的p / invoke定义将非常困难。

答案 1 :(得分:0)

我不认为你想要的设置存在。

我发现了这个

  

我不知道一般设置。我猜这取决于您使用的应用程序和驱动程序。至少我肯定知道一些   打印机驱动程序有自己的默认设置(硬编码或在注册表中设置)。   某些设置是通过* .ppd文件设置的。

     

以下是您可以使用的IE打印机设置:

     

[HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings]

     

值:类型说明   PageOrientation:REG_DWORD指定页面方向。有效设置为1 =纵向,2 =横向。默认设置为1。   PrintQuality:REG_DWORD指定打印质量。有效设置为1 =草稿,2 =最终。默认设置为1。   PaperSize:REG_DWORD指定纸张尺寸。有效设置为1 =字母,5 =法定,9 = A4,13 = B5。默认设置为1.

http://www.pcreview.co.uk/forums/settings-dafault-paper-size-registry-t528995.html

答案 2 :(得分:0)

更改打印机参数的常用方法是在打印过程中通过Win32 DEVMODE结构。驱动程序本身负责填写默认值,通常通过其属性页配置。