webdevqa.jp.net

プログラムで有効/無効にする方法 '表示PDFブラウザ内' Acrobat / ReaderXIまたはDC Adob​​e ActiveXControlで使用する場合

Adobe ActiveXコントロールを利用する.NETC#アプリケーションがあります。 AdobeAcrobatとAdobeReaderの両方のバージョン7〜10の場合、このコントロールを使用するには、「Display PDF InBrowser」設定をオンにする必要がありました。これはGUIから手動で行うことができます。

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 。お客様がAdobeReaderまたはAdobeAcrobatのバージョン7〜10を使用している場合、アプリケーションはこのレジストリ値のプログラム設定を使用しています。上記のリンクは、このbBrowserIntegrationレジストリキーがXI(11)で非推奨になったことも示しています。古いレジストリパスは、新しいバージョンにも引き続き存在します。

HKEY_CURRENT_USER\Software\Adobe\(Product Name)\(Version)\Originals

ただし、ドキュメントに示されているようにbBrowserIntegrationキーはなくなり、非推奨になりました。

Adobe ActiveXコントロールは、いつものように、ブラウザでの表示DCが有効になっている限り、XIおよびPDF)でも問題なく機能するようです。

バージョンXI(11)およびDCの場合、これを手動で達成する方法を明確に示す2つの公開リンクがあります

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をテストするときに、新規顧客のインストール用にブラウザーでDisplay PDF)を有効にする手順を完了しない場合、アプリケーションはCOM errorをスローします。上記のリンクの手順に従って設定を有効にします。すべてがアプリケーションで期待どおりに機能し、Adobe ActiveXコントロールを使用してPDFをレンダリングします。これは、レジストリ設定時に古いバージョン(7-10)で見られるものと同様です。設定されていませんでした(私の古い投稿と当時の私自身の解決策を参照してください 原因を診断する方法、修正する方法、またはAdobe ActiveX/COM関連のエラー0x80004005をプログラムで回避する方法? )。

したがって、問題は残ります。XIの手動プロセスまたは今日のDC)のいずれか、またはレジストリ設定bBrowserIntegrationそれに応じて。アプリケーションが終了したときにオンにしてから前の設定にリセットできるようにしたい(アプリケーションが必要としているという理由だけでユーザーに設定を保持させないようにする)。これが私たちの目的です。今日は7-10でやってください。

開発者の観点からブラウザ統合を有効/無効にする方法についての参照をオンラインで見つけることができないようです。これにより、アプリケーションは引き続きActiveXコントロールを使用でき、COMエラーが表示されないため、ユーザーはこれを手動で変更する必要があります。

[〜#〜] dc [〜#〜]のソリューションを理解することが最優先事項です。これは、Adobe Acrobat/Readerの新しいパラダイムを表しているためです。

10
Streamline

登録なし 」シナリオの使用を検討しましたか?これにより、ActiveXをグローバルに登録せずにアプリケーションでCOM/ActiveXコンポーネントを使用でき、アプリケーションに含まれているXMLマニフェストで定義されたインターフェイスのみに基づいてアプリケーションの分離されたCOM/ActiveXコントロールをロードできます。

ツールのリストについては この投稿 を、Flashプラグインを使用するためのサンプルXMLマニフェストについては この投稿 を参照してください。 ステップバイステップガイド を参照してください。 Adobe Readerコントロールの場合、C:\ Program Files\Adob​​e\Acrobat\Reader\ActiveXPDF.ocxを使用する必要があると思います。 )フォルダ。

更新(2015年7月27日):Adobe Readerの最新バージョンでは、AcroPDF.dllを使用し、Adobe Reader 11で確認したように、\ Program Files\Common Files\Adob​​e\Acrobat\ActiveX \に移動しました。残念ながらAcroPDF.dll ق32。exeを使用してインストールしようとするとエラーがスローされます。許可されていない使用から保護するために、初期化する前にいくつかの追加のキーをチェックすると思います(ユーザーがIEでコントロールのブロックを解除するまで)。ユーザーがアドビ以外のアプリで使用するためのPDFコントロール)を明示的に許可するという要件を公式およびプログラムで回避する方法はないようです。

X64プラットフォームで発生する可能性のある問題については ディスカッション も参照してください。より適切で信頼性の高い方法は、埋め込みPDFを呼び出すIEのWebBrowserコントロールをホストすることにより、AdobeReaderコントロールを間接的に使用することです。 =それに応じてビューアコントロール。

2
Eugene