如何确定用户的浏览器是否可以查看PDF文件

时间:2020-03-05 18:56:58  来源:igfitidea点击:

确定用户浏览器是否可以查看PDF文件的最佳方法是什么?

理想情况下,在浏览器或者操作系统上都没有关系。

在ASP.NET中是否有特定的方法可以做到这一点,还是答案仅是JavaScript?

解决方案

回答

谷歌快速搜索发现了这一点。适用于各种插件。

回答

都不,没有,不要尝试。

重新思考:插件检测不是正确的答案。我的浏览器(Ubuntu上的Firefox)没有安装PDF插件,但是我能够使用操作系统的文档查看器(不是Acrobat Reader)查看PDF文件。

今天,任何可以运行Web浏览器的操作系统都可以立即查看PDF文件。

如果特定系统没有安装PDF查看器,并且浏览器配置为使用它,则可能意味着它是Windows的手工安装,非常精简的备用操作系统,或者是真正的复古。

可以合理地假设,在任何一种情况下,用户都将知道PDF文件是什么,并且故意选择不查看它们或者不知道如何安装所需的软件。

如果我自欺欺人,我很乐意让我以错误的方式向我解释。

回答

有些用户选择不在浏览器中打开PDF并禁用插件(这允许在浏览器窗口外部的本机应用程序中打开文件)。最好让用户知道需要软件才能打开某些内容(无论是否为PDF),而不是尝试检测该插件是否可用。

检测的另一个问题是我们需要查找版本之间的更改(例如,对于Adobe PDF查看器,请参见:" PDF.PdfCtrl。"与" AcroPDF.PDF。")和不同的浏览器实现(例如,前面提到的字符串用于IE中,而Firefox使用完全不同的检测方式,那么我们需要考虑Opera和Safari和???)。另外,有不同的供应商(想想Foxit和Ghostscript,尽管我不确定他们是否为浏览器提供了插件),但在检测插件方面可能有所不同。

回答

在最初忽略此页面上的建议后,架构师继续进行Acrobat检测,这不可避免地带来了支持梦night。

如ddaa所述,并非所有场景都可以通过插件检测来准确捕获。例如,某些用户可能选择使用FoxIt Reader而不是acrobat查看PDF文件。某些用户的浏览器不会标记它们已准备好Acrobat,并且肯定不会总是以相同的方式标记。

更好的解决方案是让用户选择他们要如何查看相关文档。就个人而言,我不希望任何网站都依赖于插件来破坏网络的美感。