如果未安装pdf viewer插件,则如何检测它并发出警告消息以安装pdf viewer
我正在编写一个Android应用程序来在设备上显示pdf文件.我需要使用Adobe Reader的当前版本代码(35498)来显示pdf文件.我有代码来显示屏幕上的文件列表.现在我需要调用每个文档的Adobe Reader(而不是设备上安装的任何其他pdf阅读器).我不确定我是如何编码的.我是一个Android新手.任何帮助将不胜感激.
感谢提前,纳文
我正在显示在ASP页面中即时生成的PDF文件.PDF生成(并下载到客户端)可能需要一些时间,我想向用户提供一些反馈(加载消息或其他内容).
AFAIK无法知道何时查看PDF,因为在Adobe Reader插件加载时会触发DOM事件(即使它还没有显示任何内容).
我注意到我可以使用的插件对象有一个Javascript API.我LoadFile在其上发布了一个方法,但不幸的是它似乎没有做太多.Adobe的文档真的没用.它只将Javascript称为插件写入语言或OLE交互(并且很差).
是否有API的文档,是否可以知道PDF何时加载?如果我可以将PDF流传递给某种类型的PDF查看器,那将是完美的.
我使用以下cmd打印pdf:
acroRD32.exe /t "file1.pdf" "printerName"
Run Code Online (Sandbox Code Playgroud)
一切正常,但会弹出一个窗口.任何人都可以帮我禁用它.我尝试了这个问题中包含的各种选项, 但不能成功.
任何帮助表示赞赏.
我有一个表单,当用户按下下载按钮时,get_file.php脚本返回指定的php文件.在ffx中,当我禁用adobe插件时,会出现一个包含正确文件名的下载框.在IE8中,由于某种原因我无法禁用adobe插件,所以它总是在浏览器中打开.这很好,但是,在ffx和IE8中,当我按下adobe工具栏上的保存按钮时,我得到了错误的文件名.我得到了get_file.pdf.
我正在使用adobe reader 8.
这些是我设置的标题:
header("Cache-Control: private");
header("Pragma:");
header("Content-type: application/pdf");
header("Content-Disposition: inline; filename=$pdfFileName");
Run Code Online (Sandbox Code Playgroud)
谢谢!
这是可能的?我需要获得Adobe Reader的完整路径,包括可执行文件名.我正在寻找Windows注册表,我做的越接近找到没有可执行文件名的完整路径.提前致谢.
我的代码:
var adobe = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Adobe").OpenSubKey("Acrobat Reader");
var version = adobe.GetSubKeyNames().First();
var path = adobe.OpenSubKey(version).OpenSubKey("installer").GetValue("path");
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我正在尝试从PDF文件中提取批量文本.尝试过许多库和Adobe Reader对我来说似乎是最准确的文本提取器.
我注意到安装了Adobe Reader的文件夹中的文件AcroTextExtractor.exe.sname看起来很有希望,谷歌搜索它们显示这个文件是PDF到文本转换例程的一部分.
如何从命令行调用此文件来进行文本提取?
我注意到Process Monitor通过IAccessible(MSAA)接口访问Mozilla Firefox会导致文件访问名为"Accessibility.api"的Adobe Reader文件.当我使用Microsoft的Inspect.exe(使用MSAA)访问Mozilla Firefox时,我没有获得这些文件访问权限.
这是代码(C++)导致大约28次访问"Accessibility.api"文件访问:
CComPtr<IAccessible> mainElement;
::AccessibleObjectFromWindow(mainWindowHandle, static_cast<DWORD>(OBJID_CLIENT), IID_IAccessible, reinterpret_cast<void**>(&mainElement));
Run Code Online (Sandbox Code Playgroud)
每个::AccessibleChildren或IEnumVariant::Next调用也会导致每个子元素大约28个访问.
如何防止像Inspect.exe这样的文件访问?
我在Chrome上获得了相同的结果.
Adobe Reader未作为插件安装在这些浏览器上.
我试图重命名Accessible.api文件(位于C:\ Program Files(x86)\ Adobe\Acrobat Reader DC\Reader\plug_ins\Accessibility.api)以禁用它,但之后我无法访问任何浏览器元素更多.结果子元素不同.Inspect.exe(使用MSAA)或Ranorex Spy(没有浏览器扩展名)没有这些问题.我也用AccProbe检查了结果,这个工具产生了和我一样的结果.
看起来这只会影响32位应用程序.Inspect.exe和Ranorex Spy是64位应用程序.我的应用程序和AccProbe(安装的JRE是32位)是32位.因为Adobe Reader是32位我认为这就是为什么只有32位应用程序受到影响.我还可以使用32位版本的Ranorex Spy重现此行为.
现在我知道这种行为不是由错误的实现引起的.但是为什么这么多访问这个Adobe Reader Accessibility.api文件的问题仍然存在......
我的网站上有一个pdf文件的链接。在Firefox或iOS上的内置pdf查看器中打开pdf时没有任何问题。
尝试通过在Android上的Firefox中单击链接来打开pdf时出现错误。单击链接后,Adobe Reader应用程序将打开并尝试下载pdf进行查看。然后我得到一个错误,并且pdf无法打开。Adobe Reader内部的错误只是说
错误。无法下载该文件。请将文件保存到本地存储,然后尝试打开它。
我该如何解决?我尝试在链接中使用绝对URL,从文件名中删除空格,但这些都不起作用。我还尝试使用其他程序创建pdf,以防问题出在pdf本身,而这没有帮助。我也尝试直接在浏览器网址中输入链接,然后发生同样的事情。
在这一点上,我不知道如何在没有某种调试信息的情况下进行故障排除。我在服务器上使用Apache。
我在尝试使用 Process.Start() 打开 PDF 文件时遇到问题。该程序将该进程作为后台进程运行,但没有显示 adobe reader 窗口。我找到的一个解决方案是使用 chrome.exe,但我的客户想在 adobe-reader 上打开,因为它是默认的 Windows 程序。
(我也尝试不强制“AcroRd32.exe”并传递“AcroRd32.exe”的完整路径。同样的问题)。
有人解决了这个问题吗?
我的代码:
var p = new Process
{
StartInfo = new ProcessStartInfo(@"AcroRd32.exe", @"D:\Tests\81803130000326__.pdf")
};
p.Start();
Run Code Online (Sandbox Code Playgroud)
后台进程:
我也检查过这个问题:Process.Start(/* path to pdf */) 不适用于 Windows 8 上的 Adobe Reader
编辑信息:忘了说我正在使用 Adobe Reader DC 2018.009.20044 运行 Windows 10
编辑 2:发现 Adobe Reader DC 的“问题”。它保持一定的安全级别,不允许我以管理员身份运行它(不要问我为什么)。查看此链接了解更多信息:https : //forums.adobe.com/thread/1955530
现在我将尝试找到一个解决方案来在没有管理员权限的情况下运行它,或者让我的客户取消选中该复选框
所以,我找到了解决我的问题的方法。Adobe Reader 从 10.0 版开始,具有“保护模式”设置。我编写了一个代码来更改注册表中的设置,因此用户不需要这样做。链接:https : //www.adobe.com/devnet-docs/acrobatetk/tools/AppSec/protectedmode.html
我希望它在未来可以帮助其他人!
解决方案代码:
var registroAdobe = Registry.LocalMachine.OpenSubKey(@"Software\Policies\Adobe\Acrobat Reader\DC\", …Run Code Online (Sandbox Code Playgroud) adobe-reader ×10
pdf ×4
firefox ×3
android ×2
c# ×2
javascript ×2
apache ×1
c++ ×1
command-line ×1
html ×1
iaccessible ×1
jquery ×1