我希望在我的工作场所部署一个c#应用程序,它定义了默认的纸张大小。没什么特别的。它的工作原理是调用windows.win32并使用注册表类写入注册表。
尽管我付出了最大的努力,但我仍无法找到相关的注册表项以设置纸张尺寸和注册的打印机。有人可以帮忙吗?
干杯!
答案 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
结构。驱动程序本身负责填写默认值,通常通过其属性页配置。