Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

"Использование модального печати с компонентом TEdgeBrowser в Delphi"

Delphi , Интернет и Сети , Браузер

Использование модального печати с компонентом TEdgeBrowser в Delphi

Современные веб-компоненты часто требуют специфических решений для реализации функционала, который был доступен в более старых версиях. Такая же ситуация и с компонентом TEdgeBrowser, который заменил TWebBrowser в среде разработки RAD Studio. Одной из актуальных задач для разработчиков является возможность использования модального диалога печати с TEdgeBrowser.

Проблема

Разработчики столкнулись с проблемой, что при использовании JavaScript для показа диалога печати браузера Edge, используя код EdgeBrowser.ExecuteScript('window.print();');, диалог не отображается. Несмотря на то, что браузер "мигает" на мгновение, само окно печати не появляется. Это связано с тем, что TEdgeBrowser в своем новом обновлении не использует диалог печати операционной системы, а отображает его внутри своего окна, что ограничивает размер до размера самого компонента.

Решение проблемы

Для решения проблемы можно использовать новую функциональность в Edge WebView, которая была добавлена сравнительно недавно. Для этого необходимо обновить Edge до версии 109.0.1518.46 и Microsoft Edge Runtime до соответствующей версии. В новой версии появился метод ShowPrintUI(), который позволяет открыть диалог печати операционной системы в модальном режиме за пределами самого браузера.

Пример кода

Для использования нового метода в среде Delphi, сначала необходимо включить в проект файл WebView2_TLB.pas, который содержит определение интерфейса ICoreWebView2_16. Этот интерфейс включает в себя, помимо прочего, определение метода ShowPrintUI(). Затем можно отобразить системный диалог печати следующим кодом:

var
  WebView: ICoreWebView2_16;
begin
  // Проверяем, поддерживает ли браузер интерфейс ICoreWebView2_16
  if EdgeBrowser1.DefaultInterface.QueryInterface(ICoreWebView2_16, WebView) = S_OK then
  begin
    // Если поддерживает, показываем системный диалог печати
    WebView.ShowPrintUI(COREWEBVIEW2_PRINT_DIALOG_KIND_SYSTEM);
  end
  else
  begin
    // Функционал пока не поддерживается, возможна альтернативная реализация
  end;
end;

Дополнительные возможности

Кроме того, интерфейс ICoreWebView2_16 включает методы для прямой печати содержимого браузера в PDF или на предварительно выбранный принтер без показа диалога пользователю.

Заключение

Использование модального печати с компонентом TEdgeBrowser в Delphi требует обновления до последней версии Edge и Microsoft Edge Runtime. После этого, с помощью метода ShowPrintUI(), можно легко реализовать необходимый функционал, следуя предоставленным инструкциям и примеру кода.

Создано по материалам из источника по ссылке.

Разработчики используют компонент `TEdgeBrowser` в Delphi для реализации модального диалога печати, что стало возможным после обновления до новой версии, предоставляющей метод `ShowPrintUI()`.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Браузер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-20 22:42:47/0.0058820247650146/1