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

UWP应用中WebView2渲染PDF时打印按钮失效问题咨询

WebView2 UWP环境下PDF打印按钮失效问题解答

这是WebView2 Runtime在UWP(WinUI 2)环境中加载PDF时的已知兼容性问题,根源在于UWP沙箱限制导致WebView2内置PDF查看器的打印功能无法正常唤起系统打印对话框,在你使用的109.x版本Runtime中该问题较为常见。

可行解决方案:

  • 接管打印事件手动处理:通过WebView2的CoreWebView2.PdfPrintStarting事件拦截内置打印请求,改用UWP原生打印API实现功能:
    // WebView2初始化完成后注册事件
    webView.CoreWebView2.PdfPrintStarting += OnPdfPrintStarting;
    
    private async void OnPdfPrintStarting(CoreWebView2 sender, CoreWebView2PdfPrintStartingEventArgs args)
    {
        args.Handled = true; // 标记为已处理,阻止默认行为
        var printManager = PrintManager.GetForCurrentView();
        printManager.PrintTaskRequested += OnPrintTaskRequested;
        await PrintManager.ShowPrintUIAsync();
    }
    
    private void OnPrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs args)
    {
        var request = args.Request;
        request.CreatePrintTask("PDF文档打印", taskSourceRequested =>
        {
            // 传入远程PDF的Uri作为打印源
            taskSourceRequested.SetSource(new Uri("你的远程PDF地址"));
        });
    }
    
  • 升级WebView2 Runtime:将Runtime版本升级至120.x及以上的稳定版,微软后续版本修复了多个UWP环境下的PDF打印兼容性问题。
  • 更换PDF渲染方式:若允许下载远程PDF,可通过UWP的PdfDocument API本地加载并渲染PDF,直接使用原生打印逻辑,完全绕开WebView2的限制。

额外注意:

你的UWP目标版本为18362(Win10 1903),属于较早版本,部分现代打印API的支持有限,建议尝试将目标版本升级至19041(Win10 2004)及以上,能获得更完善的WebView2兼容性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:25:28