TEdgeBrowser有replaced the TWebBrowser。有没有一种方法可以使用TEdgeBrowser进行模态对话框打印?我尝试运行JavaScript来显示Edge Browser打印对话框,使用以下代码:
EdgeBrowser.ExecuteScript('window.print();');
浏览器 Flink 一秒钟,但没有显示打印对话框。TEdgeBrower在我的应用程序中也非常小,所以如果可能的话,我希望有一个模态打印对话框。
如果我使用组合键CTRL +P,打印对话框显示.但仅在小的TEdgeBrowser
窗口内示出。
1条答案
按热度按时间0s0u357o1#
Edge WebView control
中控制打印的功能是最近几个月才添加的(您需要至少安装109.0.1518.46
版本的Edge和微软Edge的Edge),因此 Delphi 中的标准TEdgeBrowser
组件还不知道它。有一个新的方法
ShowPrintUI()
,您可以使用它来专门打开打印对话框的操作系统版本,该对话框是模态的,并且显示在实际浏览器控件的边界之外。您可以按照WebView2 (TEdgeBrowser) updated Delphi interface (e.g. ICoreWebView2Controller2)中Marcodor's answer中的步骤在 Delphi
TEdgeBrowser
中使用新方法。使用Microsoft当前的WebView2包,结果文件
WebView2_TLB.pas
将包含一个ICoreWebView2_16
接口定义,其中包含ShowPrintUI()
方法的定义。然后,您可以将
WebView2_TLB.pas
单元包含到项目中,并使用以下代码显示系统打印对话框:ICoreWebView2_16
界面还包含将浏览器内容直接打印到PDF或预先选择的打印机的方法,而无需向用户显示对话框。