首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebView2控件中的打印功能

WebView2控件中的打印功能
EN

Stack Overflow用户
提问于 2020-06-30 09:52:28
回答 3查看 5.7K关注 0票数 9

提前谢谢!

在我的应用程序中,我在WPF用户控件中嵌入了一个WebView2控件。

有什么办法可以帮助我打印WebView2控件吗?

我发现微软提供的当前WebView2预释放 SDK没有任何特定的打印功能。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-30 17:14:16

(更新2022-11-30:自从我上次在这里答复后,我们添加了下面描述的其他打印方法)

有几种不同的打印方法可以使您在使用和控制方面得到不同程度的方便:

  • CoreWebView2.ShowPrintUI:在WebView2中显示当前顶级文档的WebView2打印预览对话框或OS打印对话框。通过这种机制,您可以轻松地获得用户熟悉的打印体验。最终用户通过打印对话框选择打印设置。(此方法目前是实验性的,仅在预发布SDK中可用)。
代码语言:javascript
复制
webview2.CoreWebView2.ShowPrintUI();
  • CoreWebView2.PrintAsync:使用可选的编程指定的打印设置,在WebView2中静默地打印当前顶级文档。如果要生成自己的打印预览对话框或以其他方式生成自己的打印体验,则可以使用此方法。(此方法目前是实验性的,仅在预发布SDK中可用)。
代码语言:javascript
复制
// null for default print settings.
await webview2.CoreWebView.PrintAsync(null);
  • CoreWebView2.PrintToPdfAsync:静默地将WebView2中的当前顶级文档打印到PDF文件或PDF流中。要完全控制打印的执行方式,您可以打印成PDF,然后生成自己的代码来打印PDF。(此方法的流版本目前是试验性的,仅在prerelease中可用)。
代码语言:javascript
复制
// null for default print settings.
var stream = await webview.CoreWebView2.PrintToPdfStreamAsync(null);
  • 脚本注入:如果实验API对您来说还不实用,作为对HTML的解决方案,您可以注入调用DOM方法的脚本。这有一个限制,即它只适用于HTML文档(例如PDF ),并且只在文档中启用脚本时才起作用。例如,如果在下面的webview2中是WPF WebView2类:
代码语言:javascript
复制
await webview2.CoreWebView2.ExecuteScriptAsync("window.print();");

也见旧的打印功能请求GitHub线程

票数 16
EN

Stack Overflow用户

发布于 2022-01-09 13:48:13

WebView2支持用PrintToPdfAsync(path, settings)打印成PDF格式

代码语言:javascript
复制
await webView2.CoreWebView2.PrintToPdfAsync(@"Path/To/File.pdf");
票数 4
EN

Stack Overflow用户

发布于 2022-09-07 09:44:24

我能够实现在Windows应用程序打印通过发送一个打印快捷键到焦点WebView2。我使用的是SendKeys类,遗憾的是它在WPF中是不可用的,但是似乎有一个解决方法提到了这里

在你弄明白这部分之后,它很简单,比如:

代码语言:javascript
复制
this.webView1.Focus();
SendKeys.Send("^p");

它工作得很漂亮,在WebView2中显示预览和设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62654738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档