You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用UWP Printer Support App(PSA)创建虚拟打印机问题咨询

关于UWP PSA虚拟打印机自动创建的疑问

我正遵循微软官方指南开发UWP PSA应用,但本地部署后虚拟打印机未创建。该应用仅包含配置文件及关联的占位后台任务,无实际业务逻辑。想确认:

  1. PSA v4是否无需开发打印机驱动即可充当虚拟打印机?
  2. 安装此类应用后虚拟打印机应自动创建吗?

附应用清单核心配置代码:

<Applications>
    <Application Id="App"
      Executable="$targetnametoken$.exe"
      EntryPoint="AbcVirtualPrinter.App"
      desktop4:SupportsMultipleInstances="true" uap18:RuntimeBehavior="windowsApp">
        <uap:VisualElements
          DisplayName="AbcVirtualPrinter"
          Square150x150Logo="Assets\Square150x150Logo.png"
          Square44x44Logo="Assets\Square44x44Logo.png"
          Description="AbcVirtualPrinter"
          BackgroundColor="transparent">
            <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
            <uap:SplashScreen Image="Assets\SplashScreen.png" />
        </uap:VisualElements>

        <Extensions>
            <printsupport2:Extension Category="windows.printSupportVirtualPrinterWorkflow"
                                     EntryPoint="AbcVirtualPrinter.VirtualPrinterBackgroundTask">
                <printsupport2:PrintSupportVirtualPrinter
                    DisplayName="AbcVirtualPrinter"
                    PrinterUri="Abc-print:AbcVirtualPrinter"
                    PreferredInputFormat="application/postscript"
                    OutputFileTypes="ps;pdf"
                    PdcFile="Config\Abc_PDC.xml" >
                    <printsupport2:SupportedFormats>
                        <printsupport2:SupportedFormat Type="application/postscript" />
                        <printsupport2:SupportedFormat Type="application/pdf" MaxVersion="1.7" />
                    </printsupport2:SupportedFormats>
                </printsupport2:PrintSupportVirtualPrinter>
            </printsupport2:Extension>
            <printsupport:Extension Category="windows.printSupportExtension" EntryPoint="AbcVirtualPrinter.PrintSupportExtensionBackGroundTask"/>
            <printsupport:Extension Category="windows.printSupportSettingsUI" EntryPoint="AbcVirtualPrinter.App"/>
            <printsupport:Extension Category="windows.printSupportJobUI" EntryPoint="AbcVirtualPrinter.App"/>
        </Extensions>

    </Application>
</Applications>

问题解答

  1. PSA v4无需开发传统打印机驱动:Print Support App (PSA) v4的虚拟打印机功能基于Windows内置打印栈实现,通过printsupport2扩展声明即可完成虚拟打印机的定义,不需要编写内核模式驱动,完全基于UWP框架开发。

  2. 虚拟打印机应自动创建,但需满足前提条件:

    • 系统版本要求:必须在Windows 11 22H2及以上版本运行,printsupport2扩展是该版本才引入的API,低版本系统不支持此功能。
    • 部署方式要求:本地调试部署(如Visual Studio直接运行)可能不会触发打印机自动注册,需通过正式安装流程(如安装Appx包、部署到Microsoft Store)才能触发。
    • 配置正确性检查:
      • PrinterUri需为唯一自定义协议格式,避免与系统内其他打印机冲突;
      • PdcFile路径需正确指向应用包内的PDC文件,即使是占位文件也需符合微软PDC规范结构;
      • 后台任务类必须正确实现IPrintSupportVirtualPrinterWorkflowTriggerHandler接口,且清单中注册的EntryPoint需与类的命名空间+类名完全匹配;
    • 权限声明:应用必须在Package.appxManifest的Capabilities中添加<DeviceCapability Name="printerSupport"/>权限。

排查步骤

  • 查看事件日志:打开Windows事件查看器,检查应用和服务日志 -> Microsoft -> Windows -> PrintService/Operational,寻找打印机注册失败的错误详情;
  • 重新注册应用:使用PowerShell命令Add-AppxPackage -Register path\to\AppxManifest.xml重新注册,查看是否有报错;
  • 验证后台任务:通过任务管理器检查后台任务进程是否运行,或用Visual Studio后台任务调试工具确认任务注册状态。

内容的提问来源于stack exchange,提问作者Yuriy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 02:24:56