3

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

尽管我尽了最大的努力,但我还是找不到相关的注册表项来设置纸张尺寸和注册的打印机。任何人都可以帮忙吗?

干杯!

4

3 回答 3

2

更改注册表设置不是执行此操作的受支持方式。

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

功能底部的注释DocumentProperties描述了将新设置(例如纸张尺寸)与现有配置合并的正确方法。

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

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

于 2011-09-15T16:30:52.130 回答
0

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

我找到了这个

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

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

[HKCU\Software\Microsoft\Windows\CurrentVersion\Internet 设置]

值:类型 描述 PageOrientation:REG_DWORD 指定页面方向。有效设置为 1=纵向,2=横向。默认设置为 1。 PrintQuality : REG_DWORD 指定打印质量。有效设置为 1=草稿,2=最终。默认设置为 1。 PaperSize : REG_DWORD 指定纸张大小。有效设置为 1=letter、5=Legal、9=A4、13=B5。默认设置为 1。

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

于 2011-09-15T16:17:29.620 回答
0

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

于 2011-09-15T16:28:29.097 回答