VB.NET WinForm下WebView2通过--kiosk-printing实现静默打印的配置问题
VB.NET WinForm WebView2 静默打印实现方案
问题根因
你现有代码的核心问题如下:
- 在
EnsureCoreWebView2Async执行完成前就尝试访问WebView_Browser1.CoreWebView2绑定事件,会触发空引用异常 - 若之前运行过未带
--kiosk-printing参数的WebView2程序,后台会残留可复用的msedgewebview2进程,新参数无法生效 - 事件绑定的handler名称不匹配,你绑定的是
WebView_Browser1_FrameNavigationCompleted但代码里没有对应实现,会导致编译错误
完整可运行实现
前提条件
- 已通过NuGet包管理器为项目安装
Microsoft.Web.WebView2最新稳定版 - 窗体上已拖入WebView2控件,命名为
WebView_Browser1,可额外拖入一个按钮命名为btnSilentPrint用于测试打印
完整代码
Imports Microsoft.Web.WebView2.Core Imports System.Threading.Tasks Public Class Form1 Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Await InitializeWebView2Async() End Sub ''' <summary> ''' 初始化WebView2并配置静默打印参数 ''' </summary> Private Async Function InitializeWebView2Async() As Task ' 配置浏览器启动参数,启用静默打印 Dim envOptions As New CoreWebView2EnvironmentOptions With { .AdditionalBrowserArguments = "--kiosk-printing" } ' 创建自定义环境 Dim webViewEnv = Await CoreWebView2Environment.CreateAsync(Nothing, Nothing, envOptions) ' 等待WebView2初始化完成 Await WebView_Browser1.EnsureCoreWebView2Async(webViewEnv) ' 初始化完成后绑定事件、导航到目标页面 AddHandler WebView_Browser1.CoreWebView2.FrameNavigationCompleted, AddressOf OnFrameNavigationCompleted WebView_Browser1.CoreWebView2.Navigate("https://www.baidu.com") ' 替换为你的目标页面 End Function ''' <summary> ''' 页面加载完成后的处理逻辑,可按需实现 ''' </summary> Private Sub OnFrameNavigationCompleted(sender As Object, e As CoreWebView2NavigationCompletedEventArgs) ' 可在这里判断页面加载完成后自动触发打印,也可以通过按钮手动触发 End Sub ''' <summary> ''' 测试静默打印按钮点击事件 ''' </summary> Private Async Sub btnSilentPrint_Click(sender As Object, e As EventArgs) Handles btnSilentPrint.Click If WebView_Browser1.CoreWebView2 IsNot Nothing Then ' 调用打印,无弹窗直接发送到默认打印机 Await WebView_Browser1.CoreWebView2.ExecuteScriptAsync("window.print();") End If End Sub End Class
注意事项
- 如果首次运行参数不生效,打开任务管理器结束所有
msedgewebview2.exe进程后重新运行即可,WebView2默认会复用现有进程,旧进程未携带新参数会导致配置不生效 - 静默打印会直接使用系统默认打印机和默认打印配置,不需要用户手动确认
- 确保你调用
window.print()时页面内容已经完全加载完成,否则会打印空白内容
内容的提问来源于stack exchange,提问作者Desz
相关产品推荐
相关产品推荐

