我希望在我的工作场所部署 ac# 应用程序,它定义了默认的纸张大小。没什么特别的。它通过调用 windows.win32 并使用注册表类写入注册表来工作。
尽管我尽了最大的努力,但我还是找不到相关的注册表项来设置纸张尺寸和注册的打印机。任何人都可以帮忙吗?
干杯!
更改注册表设置不是执行此操作的受支持方式。
正确的方法是使用DEVMODE
结构。
功能底部的注释DocumentProperties
描述了将新设置(例如纸张尺寸)与现有配置合并的正确方法。
不要担心它描述了如何更改应用程序的设置。将最后一步 ( ) 替换为在级别 8CreateDC
调用SetPrinter
函数以更改该打印机的全局默认值(或使用级别 9 更改每个用户的默认值)。
在 C++ 中这样做会容易得多,因为您可以使用 Windows 提供的头文件。所涉及的结构非常复杂,获得正确的 p/invoke 定义将非常困难。
我不认为你想要的设置存在。
我找到了这个
我不知道一般设置。我猜这取决于您使用的应用程序和驱动程序。至少我确定某些打印机驱动程序有自己的默认设置(硬编码或在注册表中设置)。一些设置是通过 *.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
更改打印机参数的常用方法是DEVMODE
在打印过程中通过 Win32 结构。驱动本身负责填写默认值,一般通过其属性页进行配置。