首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式启用/禁用Acrobat / Reader或DC的“浏览器中显示PDF”,以便与Adobe控件一起使用

如何以编程方式启用/禁用Acrobat / Reader或DC的“浏览器中显示PDF”,以便与Adobe控件一起使用
EN

Stack Overflow用户
提问于 2015-07-06 20:58:06
回答 1查看 11.8K关注 0票数 10

我们有一个.NET C#应用程序,它使用ActiveX控件。对于Acrobat和Adobe的7-10版本,要使用此控件,需要打开“在浏览器中显示PDF”设置。您可以在GUI中手动执行此操作。

代码语言:javascript
运行
复制
Preferences > Internet > Display PDFs in browser

或以编程方式直接设置注册表设置。

代码语言:javascript
运行
复制
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。当客户拥有Adobe或Acrobat的7-10版本时,我们的应用程序一直在以编程方式设置此注册表值。上面的链接还表明这个bBrowserIntegration注册表项在XI (11)中不受欢迎。旧的注册表路径仍然存在于新版本中,即:

代码语言:javascript
运行
复制
HKEY_CURRENT_USER\Software\Adobe\(Product Name)\(Version)\Originals

但是,不再像文档所指出的那样存在bBrowserIntegration密钥,因此不推荐使用它。

看起来在XI和DC上仍然可以正常工作,只要在浏览器中显示ActiveX就可以了,就像以前一样。

对于XI (11)和DC版本,有两个已发布的链接清楚地显示了如何实现此手动

代码语言:javascript
运行
复制
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时,如果我们不完成在浏览器中为新客户安装启用显示PDF的步骤,那么我们的应用程序将抛出一个COM error,然后,如果我们按照上面链接中的说明启用设置,那么所有操作都会按照我们的应用程序的预期进行,它使用Adobe控件来呈现PDF,这与我们在未设置注册表设置时(请参阅我的旧帖子和我自己的解决方案后的如何诊断导致、修复或处理Adobe80004005相关的ActiveX / COM错误?)在旧版本(7-10)中所期望看到的类似。

因此,问题仍然存在,对于今天的XI或DC中的手动过程来说,什么是预期的编程等价物,还是相当于通过相应地设置注册表设置bBrowserIntegration而在7-10中工作的程序。我们希望能够打开它,然后在应用程序结束时将其重置为以前的设置(所以我们的应用程序不会仅仅因为我们的应用程序需要它而强迫用户保留设置),这就是我们今天在7-10中所做的。

我似乎无法从开发人员的角度在网上找到任何关于如何启用/禁用浏览器集成的引用,因此我们的应用程序可以继续使用ActiveX控件,而不会出现COM错误,迫使用户手动更改它。

首要任务是理解DC的解决方案,因为这代表了Acrobat/Reader的新范例。

EN

回答 1

Stack Overflow用户

发布于 2015-07-20 11:13:52

您考虑过使用"免费注册“场景吗?它允许在应用程序中使用COM/ActiveX组件,而无需全局注册ActiveX,并且允许仅基于随应用程序一起包含的XML清单中定义的接口为应用程序加载孤立的COM/ActiveX控件。

有关工具列表,请参阅这个职位,使用Flash和这个分步导轨的示例XML清单,请参阅这个职位。我假设对于Adobe控件,您应该使用C:\Program \Acrobat \ Reader \ActiveX文件夹中的PDF.ocx。

更新(2015年7月27日):在Adobe的最新版本中,他们使用AcroPDF.dll并将其移动到\Program \Common\Acrobat\ActiveX\正如我在Adobe 11中检查过的那样。不幸的是,AcroPDF.dll在试图使用regsvr32.exe安装它时抛出错误。我想,在初始化之前,它会检查一些额外的键,以防止不允许的使用(直到用户在IE中解除了控件的阻塞)。似乎没有办法正式和程序化地绕过用户显式允许PDF控件供非Adobe应用程序使用的要求。

还请参阅讨论有关x64平台上可能出现的问题的内容:更好和更可靠的方法是通过托管IE的WebBrowser控件间接地使用Adobe控件,从而相应地调用嵌入式WebBrowser查看器控件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31255483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档