У нас есть приложение .NET C #, которое использует элементы управления Adobe ActiveX. Для версий 7-10 как Adobe Acrobat, так и Adobe Reader, чтобы использовать этот элемент управления, вам необходимо было включить параметр «Отображать PDF в браузере». Вы можете сделать это вручную из графического интерфейса, используя
Preferences > Internet > Display PDFs in browser
или программно, установив параметры реестра напрямую
HKEY_CURRENT_USER\Software\Adobe\(Product Name)\(Version)\Originals
"bBrowserIntegration"=dword:00000001
Это следует из справочника SDK http://www.adobe.com/devnet-docs/acrobatetk/tools/PrefRef/Windows/Originals.html#BrowserIntegration. Наше приложение использует программную настройку этого значения реестра, когда у наших клиентов есть версии 7-10 Adobe Reader или Adobe Acrobat. Ссылка выше также указывает на то, что этот bBrowserIntegration
раздел реестра устарел в XI (11). Старый путь реестра по-прежнему существует в новых версиях, то есть:
HKEY_CURRENT_USER\Software\Adobe\(Product Name)\(Version)\Originals
однако ключа bBrowserIntegration
больше нет, как указано в документации, он устарел.
Похоже, что элемент управления Adobe ActiveX по-прежнему отлично работает с XI и DC, пока включен Отображать PDF в браузере, как всегда.
Для версий XI (11) и DC есть две опубликованные ссылки, которые ясно показывают, как добиться этого вручную:
XI (11): https://helpx.adobe.com/acrobat/11/using/display-pdf-browser-acrobat-xi.html
DC (current): https://helpx.adobe.com/acrobat/using/display-pdf-in-browser.html
При тестировании Adobe Reader DC, если мы не выполним шаги, чтобы включить отображение PDF в браузере для новой установки клиента, наше приложение выдаст COM error
, а затем, если мы включим настройку, следуя инструкциям в приведенной выше ссылке, все работает как ожидалось с нашим приложением, он отображает PDF-файлы с помощью Adobe ActiveX Control, что похоже на то, что мы ожидаем увидеть в более старых версиях (7-10), когда параметр реестра не был установлен (см. мой старый пост и мое собственное решение назад затем Как диагностировать причину, исправить ошибку 0x80004005, связанную с Adobe ActiveX / COM или обойти ее программно?).
Итак, остается вопрос, каков ожидаемый программный эквивалент ручного процесса в XI или DC сегодня или эквивалент того, что работал в 7-10, путем установки соответствующего параметра реестра bBrowserIntegration
. Мы хотим иметь возможность включить его, а затем сбросить его до предыдущего значения, когда наше приложение завершится (чтобы наше приложение не заставляло пользователя сохранять настройку только потому, что нашему приложению это нужно), что мы делаем сегодня для 7 -10.
Кажется, я не могу найти в Интернете ссылок на то, как включить / отключить интеграцию браузера с точки зрения разработчика, чтобы наше приложение могло продолжать использовать элемент управления ActiveX и не отображать ошибки COM, вынуждая пользователя изменять это вручную.
Первоочередной задачей является понимание решения для DC, поскольку оно представляет новую парадигму для Adobe Acrobat / Reader.
WebBrowser
элемент управления в файл PDF? Или напрямую разместить Acrobat Reader ActiveX? - person noseratio   schedule 07.07.2015