TWebBrowser
组件已被 TEdgeBrowser
替代。我的目标是当用户使用 TEdgeBrowser
组件打印时自定义打印 HTML 页面的页眉和页脚部分中的文本。我能够在使用
TWebBrowser
组件时通过编写代码在打印时临时设置 Internet Explorer 注册表项来实现此目的(“SOFTWARE\Microsoft\Internet Explorer\PageSetup”:“页眉”和“页脚”键)。但是,Edge 浏览器似乎不存在这些相同的键。我发现的最接近的是'PrintHeaderFooter' 键,它可以启用/禁用页眉和页脚。 使用新的
TEdgeBrowser
组件打印时,是否可以修改 Delphi 应用程序中的页眉和页脚内容?
Print
方法打印自己时,您可以指定自己的字符串来代替页眉和页脚中的文档标题和文档 uri:
procedure TForm1.Button1Click(Sender: TObject);
var
PrintSettings: ICoreWebView2PrintSettings;
begin
(EdgeBrowser1.EnvironmentInterface as ICoreWebView2Environment6).CreatePrintSettings(PrintSettings);
PrintSettings.Set_ShouldPrintHeaderAndFooter(true.ToInteger);
PrintSettings.Set_HeaderTitle('New Header text');
PrintSettings.Set_FooterUri('New Footer text');
(EdgeBrowser1.DefaultInterface as ICoreWebView2_16).Print(PrintSettings, nil);
end;
您还可以通过PrintSettings
控制更多内容,例如按名称选择要使用的打印机、选择纸张尺寸和页面方向等。为了访问类型
ICoreWebView2PrintSettings
、
ICoreWebView2Environment6
和
ICoreWebView2_16
,请按照WebView2 (TEdgeBrowser) 更新的 Delphi 界面(例如 ICoreWebView2Controller2)Marcodor 的回答中的步骤进行操作。