Wie Sie Programmgesteuert Aktivieren/Deaktivieren Sie "PDF In Browser Anzeigen' Für Acrobat / Reader XI oder DC Für den Einsatz Mit Adobe-ActiveX-Steuerelement
Haben wir eine .NET C# - Anwendung, die Gebrauch macht von der Adobe-ActiveX-Steuerelemente. Für die Versionen 7 bis 10 des Adobe Acrobat und Adobe Reader, um dieses Steuerelement verwenden, Sie waren erforderlich, um schalten Sie den "PDF In Browser Anzeigen" - Einstellung. Man könnte dies manuell über die GUI mit
Preferences > Internet > Display PDFs in browser
oder programmgesteuert durch festlegen der registry-Einstellungen direkt
HKEY_CURRENT_USER\Software\Adobe\(Product Name)\(Version)\Originals
"bBrowserIntegration"=dword:00000001
Folgt der SDK-Referenz http://www.adobe.com/devnet-docs/acrobatetk/tools/PrefRef/Windows/Originals.html#BrowserIntegration. Unsere Anwendung wurde mit Hilfe der programmgesteuerten festlegen dieser registry-Wert, wenn unsere Kunden den Versionen 7 bis 10 des Adobe Reader oder Adobe Acrobat. Der link oben zeigt auch, dass diese bBrowserIntegration
registry-Schlüssel ist veraltet und XI (11). Die alten registry-Pfad noch existiert in den neuen Versionen, d.h.:
HKEY_CURRENT_USER\Software\Adobe\(Product Name)\(Version)\Originals
aber es ist nicht mehr ein bBrowserIntegration
Schlüssel wie die Dokumentation zeigt, ist es veraltet.
Scheint es, dass die Adobe-ActiveX-Steuerelement funktioniert immer noch gut mit XI und DC, so lange als PDF in Browser Anzeigen aktiviert ist, wie es immer getan hat.
Bei den Versionen XI (11) und DC, gibt es zwei veröffentlichte links, die klar zeigen, wie Sie diese erreichen manuell:
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
Beim testen Adobe Reader DC, wenn wir nicht die Schritte zum aktivieren der Anzeige von PDF im Browser für einen neuen Kunden installation, dann wird unsere Anwendung werfen COM error
und wenn wir dann aktivieren Sie die Einstellung entsprechend den Anweisungen in den link oben, alles funktioniert wie erwartet mit unserer Applikation macht es PDFs mit dem Adobe-ActiveX-Steuerelement, ähnlich dem, was wir erwarten, um zu sehen, in älteren Versionen (7-10) wenn die registry-Einstellung nicht gesetzt war (siehe mein Alter Beitrag und meine Lösung damals Wie diagnostizieren Sie die Ursache, beheben oder umgehen Adobe-ActiveX /COM-bezogenen Fehler 0 x 80004005 progmatically?).
So, bleibt die Frage, was ist die erwartete programmatische Entsprechung entweder für den manuellen Prozess in XI oder DC heute oder das äquivalent zu dem, was funktioniert in 7-10 durch die Einstellung der registry-Einstellung bBrowserIntegration
entsprechend. Wir wollen in der Lage sein, um es einzuschalten und dann setzen Sie es auf die Vorherige Einstellung, wenn Sie unsere Anwendung beendet (so, dass unsere Anwendung nicht erzwingen, dass der Benutzer die Einstellung wieder, nur weil unsere Anwendung braucht es), das ist das, was wir heute tun, für 7-10.
Ich kann nicht scheinen, um herauszufinden, alle Referenzen online für Sie, wie zu aktivieren/deaktivieren Sie browser-integration von einem Entwickler-Standpunkt aus so, dass unsere Anwendung kann weiterhin das verwenden der ActiveX-Steuerelement und nicht über die COM-Fehler zeigen, zwingen den Benutzer zu ändern manuell.
Die oberste Priorität ist, zu verstehen, die Lösung für DC da dies das neue Paradigma für Adobe Acrobat/Reader.
- Sind Sie auf der Navigation einen
WebBrowser
- Steuerelement, um eine PDF-Datei? Oder Acrobat Reader ActiveX-direkt? - Wir sind mit dem inter-application hosting der Adobe Acrobat-ActiveX-Control in unserer app zur Anzeige von PDF-Dateien, die NICHT mit einem web-browser Steuerelement in der app. Mithilfe des ActiveX-Steuerelements erfordert das " display pdf in browser-Einstellungen, wie wenn du mit IE sich zum anzeigen der PDF-Datei
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie als die Verwendung von " Anmeldung kostenlos " - Szenario? Es ermöglicht die Verwendung von COM/ActiveX-Komponenten in Ihre Anwendung ohne Registrierung der ActiveX-weltweit und erlaubt das laden und den isolierten COM - /ActiveX-Steuerelement für Ihre Anwendung nur auf der Basis der definierten Schnittstellen im XML-manifest enthalten, zusammen mit Ihrer Anwendung.
Sehen dieser Beitrag für die Liste der tools und dieser Beitrag für die Beispiel-XML-manifest mit den Flash-plugin und das Schritt für Schritt Anleitung. Ich gehe davon aus, dass für die Adobe-Reader-Steuerelement, die Sie verwenden PDF.ocx von C:\Program Dateien\Adobe\Acrobat \Reader\ActiveX Ordner.
UPDATE (27. Juli 2015): In den neuesten Versionen von Adobe Reader, die Sie verwenden AcroPDF.dll und zog es in \Program Files\Common Files\Adobe\Acrobat\ActiveX\ da hab ich überprüft, die mit Adobe Reader 11. Leider AcroPDF.dll wirft Fehler, wenn Sie versuchen, es zu installieren mit regsvr32.exe. Ich nehme an, prüft es einige zusätzliche Tasten, bevor die Initialisierung zu schützen, die aus nicht zulässigen Nutzung (bis der Benutzer eine verstopfte die Kontrolle im IE). Scheint, wie es ist nicht offiziell und programmatisch zu Fuß rund um die Anforderung für die Benutzer ausdrücklich zu erlauben, PDF-Steuerelement für die Verwendung von nicht-Adobe-apps.
Siehe auch die Diskussion über mögliche Probleme auf x64-Plattform: die bessere und zuverlässigere Methode ist die Verwendung von Adobe Reader Steuern, indirekt durch die hosting-IE-WebBrowser-Steuerelement aufrufen, wird das eingebettete PDF-viewer-Steuerelement entsprechend.