在Edge WebView control
中控制打印的功能是only added within the last months(您需要至少安装版本109.0.1518.46
的Edge和Microsoft Edge Runtime),所以Delphi中的标准TEdgeBrowser
组件还不知道这一点.
有一个新的方法ShowPrintUI()
,您可以使用它来专门打开打印对话框的操作系统版本,它是模式的,并显示在实际浏览器控件的边界之外.
您可以按照WebView2 (TEdgeBrowser) updated Delphi interface (e.g. ICoreWebView2Controller2)087">Marcodor's answerat WebView2 (TEdgeBrowser) updated Delphi interface (e.g. ICoreWebView2Controller2)中的步骤使用Delphi TEdgeBrowser
中的新方法.
使用来自微软的当前WebView2包,结果文件WebView2_TLB.pas
将包含ICoreWebView2_16
接口定义,该ICoreWebView2_16
接口定义尤其包含ShowPrintUI()
方法的定义.
然后,您可以将WebView2_TLB.pas
单位包含到您的项目中,并使用以下代码显示系统打印对话框:
var
WebView: ICoreWebView2_16;
begin
// Test if browser supports ICoreWebView2_16 interface
if EdgeBrowser1.DefaultInterface.QueryInterface(ICoreWebView2_16, WebView) = S_OK then
begin
// If yes, show system print dialog
WebView.ShowPrintUI(COREWEBVIEW2_PRINT_DIALOG_KIND_SYSTEM);
end
else
begin
// Not yet supported, possible fallback?
end;
end;
ICoreWebView2_16
界面还包含将浏览器内容直接打印到PDF或预先 Select 的打印机而不向用户显示对话框的方法.