更多背景信息

更多背景信息

我怎么能够以编程方式从打印机Printing Defaults设置中检索并显示属性值?

我可以使用 PowerShell 成功地从打印机检索属性值Preferences,但是在尝试访问其中的设置时遇到了困难Printing Defaults

更多背景信息

您可以在哪里设置打印机preferences,并且可以设置打印机printing defaults

  1. 打印首选项: Printer Properties|General标签 |Preferences
  2. 打印默认值: Printer Properties|Advanced标签 |Printing Defaults

对特定打印机执行此 PowerShell 查询仅从而Preferences不是中检索设置Printing Defaults,这是我需要的信息。

获取打印默认值

$p = "Printer XYZ";
$printerConfigs = Get-WmiObject -Class Win32_PrinterConfiguration | Where {$_.Name -like "*$p*"};

foreach ($config in $printerConfigs) {
    $printerName = $config.Caption;
    $collate = $config.Collate;
    $color = $config.Color;
    $duplex = $config.Duplex;
    $paperSize = $config.PaperSize;

    ## -- Display output
    Write-Host "Printer: $printerName" -ForegroundColor Yellow;
    Write-Host "Collate: $collate" -ForegroundColor Yellow;
    Write-Host "Color: $color" -ForegroundColor Yellow;
    Write-Host "Duplex: $duplex" -ForegroundColor Yellow;
    Write-Host "Paper Size: $paperSize" -ForegroundColor Yellow;
    
    Write-Host "-----------------------";
};

打印机设置

使用驱动程序: RICOH PCL6 Universal V4.37

附上我在优先此打印机的选项,PowerShell 查询输出按预期显示了这一点。然而,在打印默认设置,它设置为彩色和双面,设置不同于优先

如果我改变优先然后运行 ​​PowerShell 查询,我可以看到输出值按预期发生变化——但我看不到打印默认设置以及重新运行此查询时这些值发生更改(或不同)的情况。我很想知道打印默认设定值。

这是我所看到的Preferences

在此处输入图片描述

这是我所看到的Printing Defaults

在此处输入图片描述

输出

Printer: Printer XYZ
Collate: False
Color: 1
Duplex: False
Paper Size: Letter 8 1/2 x 11 in
-----------------------

我也尝试过使用Get-WmiObject -Class Win32_Printer和一系列其他的东西,但我还没有从Printing Defaults打印机上取回设置。

综上所述,我期待收到指导、建议、示例代码或您在成功检索这些打印机属性方面拥有的任何经验。此外,如果您有非 PowerShell 解决方案可以帮助我实现此目标,我也愿意探索这些选项。我的主要重点是从打印机获取必要的属性值。

答案1

要检索打印机的打印默认设置使用 PowerShell 进行配置设置时,您可以使用 cmdlet Get-PrintConfiguration。此方法与以下两种方法兼容:Windows 10Windows 服务器 2019,已确认。

笔记: 所有确认可以工作的打印机均使用制造商“普遍的“分类驱动程序。

电源外壳

$p = "Printer XYZ";
$printerConfigs = Get-PrintConfiguration -PrinterName $p;
$printerConfigs | Select PrinterName, Collate, Color, DuplexingMode, PaperSize;

输出

PrinterName   : Printer XYZ
Collate       : False
Color         : True
DuplexingMode : TwoSidedLongEdge
PaperSize     : Letter

支持资源


免费

  • DEVMODEW 结构The DEVMODEW Structure

  • 什么是 DEVMODE?

    DEVMODE 是一个 Windows 结构,用于保存打印机设置(有关打印机的初始化和环境信息)。它包含两个部分:公共部分和私有部分

    • 公共部分包含所有打印机共用的数据。

    • 私密部分包含特定于特定打印机的数据。私有部分的长度可变,并包含所有特定制造商的相关设置。

      • 公开部分:此部分编码打印机驱动程序模型中公开的常规设置,例如打印机名称、驱动程序版本、纸张大小、方向、颜色、双面打印等。公共部分保持不变,不受任何打印机驱动程序影响,不支持与标签打印机(热敏打印机、工业喷墨打印机、激光雕刻机)相关的细节。

      • 私密部分:此部分对公共部分中不可用的设置进行编码。<Some manufacturer>打印机驱动程序使用此部分存储特定于打印机型号的数据,例如打印速度、温度设置、偏移量、打印模式、介质类型、传感器、切刀、图形编码、RFID 支持等。DEVMODE 私有部分中的数据结构是驱动程序开发人员定义的二进制数据流。

    DEVMODE 改变

    DEVMODE 数据结构存储在 Windows 注册表中。该结构有两个副本:默认打印机设置和用户特定的打印机设置。您可以通过更改打印机驱动程序中的参数来更改 DEVMODE(打印机设置)。前两个选项与 Windows 相关,而第三个选项可通过<some manufacturer>软件获得。

    • 默认打印机设置:这些设置定义在打印机属性 > 高级选项卡 > 打印默认设置

    • 用户特定设置:这些设置分别存储在每个用户的HKEY_CURRENT_USER注册表项中。默认情况下,用户特定设置继承自打印机的默认设置。用户特定设置在打印机属性 > 首选项。此处的所有修改都只影响当前用户。

    来源

相关内容