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

Решение проблемы отображения PDF в TWebBrowser после установки Adobe DC PDF Reader

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

Вопрос пользователя заключается в том, что после установки Adobe DC PDF Reader на новых компьютерах, программа на Delphi, которая отображает PDF в компоненте TWebBrowser, перестала корректно работать. Вместо документа отображается серый экран, хотя в Internet Explorer PDF открывается без проблем. Пользователь использует Delphi Berlin.

Причины проблемы

TWebBrowser в Delphi по умолчанию использует движок Internet Explorer, который может не совпадать с версией, установленной на компьютере пользователя. Также, TWebBrowser открывает страницы в режиме совместимости IE7, который не поддерживает современные расширения, включая Adobe Reader Web Extension, необходимые для отображения PDF.

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

Для решения проблемы можно использовать один из двух подходов:

  1. Настройка TWebBrowser для использования последней версии Internet Explorer:

Необходимо включить режим эмуляции браузера для использования последней версии Internet Explorer. Это можно сделать с помощью документации, приведенной в этом ответе на Stack Overflow: Opt in to the browser emulation feature using the documented registry key. Важно помнить, что настройка должна быть выполнена на каждом компьютере, где запускается программа.

  1. Замена TWebBrowser на TEdgeBrowser:

Если вы используете Delphi Sydney или более позднюю версию, вы можете перейти на использование компонента TEdgeBrowser, который позволяет открывать PDF без необходимости использования плагинов, даже если Microsoft Edge не установлен. Однако, если вы используете Delphi Berlin, то этот вариант не подойдет, так как TEdgeBrowser не поддерживается в этой версии.

Пример кода для Opt-in браузера Internet Explorer

Чтобы включить Opt-in для Internet Explorer, можно использовать следующий код на Object Pascal (Delphi):

uses
  Registry;

var
  RegistryKey: TRegistry;
begin
  RegistryKey := TRegistry.Create(KEY_READ or KEY_WRITE);
  try
    RegistryKey.RootKey := HKEY_CURRENT_USER;
    RegistryKey.OpenKeyReadWrite('\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', False);

    RegistryKey.SetStringValue(YourAppPath + '\YourApp.exe', 'iexplore.exe', '0x2000');
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  RegistryKey.CloseKey;
  RegistryKey.Free;
end;

В этом коде YourAppPath - это путь к исполняемому файлу вашего приложения, а 0x2000 - это идентификатор для Internet Explorer 11. Вам нужно будет изменить этот идентификатор в зависимости от версии Internet Explorer, которую вы хотите использовать.

Выводы

Проблема отображения PDF в TWebBrowser после установки Adobe DC PDF Reader связана с настройками Internet Explorer и режимом совместимости, в котором работает TWebBrowser. Пользователи, использующие Delphi Berlin, могут применить настройки Opt-in для Internet Explorer, чтобы решить эту проблему. Для более новых версий Delphi доступна замена TWebBrowser на TEdgeBrowser.

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

Вопрос связан с решением проблемы отображения PDF в компоненте TWebBrowser после обновления Adobe Acrobat до версии DC PDF Reader, что вызвало несовместимость с движком Internet Explorer, используемым в TWebBrowser.


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

Получайте свежие новости и обновления по 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:44:31/0.0020020008087158/0