Check if Adobe Reader is installed on the client machine

I am currently working on a web page that will tell the user about some configurations on the client machine. From this, you also need to determine whether Adobe Reader is installed on the client machine or not. I am using ASP.NET/C#.

I looked at the following URL for the answer " Check if Adobe Reader (C #) is installed? ", But when I look at the code in the server registry, IIS is installed, and not the client machine that the browser is running on.

Can I determine if Adobe Reader is installed on the client computer, and not on the server hosting the website?

+3
source share
2 answers

pls check the script below it works fine for me in IE, FireFox and Chrome

<html>
<body>
<script type="text/javascript">
var found = false;
var info = '';

try 
{    
    acrobat4 = new ActiveXObject('PDF.PdfCtrl.1');    
    if (acrobat4) 
    {      
        found = true;      
        info = 'v. 4.0';    
    }  
}  
catch (e) 
{
    //???
}

if (!found)
{
    try 
    {
        acrobat7 = new ActiveXObject('AcroPDF.PDF.1');
        if (acrobat7) 
        {
            found = true;
            info = 'v. 7+';
        }
    } 
    catch (e) 
    {
        //???
    }

    if (!found && navigator.plugins && navigator.plugins.length>0)
    {
        for (var i = 0; i<navigator.plugins.length; i++) 
        {                           
            if (navigator.plugins[i].name.indexOf('Adobe Acrobat') > -1)
            {
                found = true; 
                info = navigator.plugins[i].description + ' (' + navigator.plugins[i].filename + ')';
                break;
            }
        }
    }
}

document.write("Acrobat Reader Installed : " + found);
document.write("<br />");
if (found) document.write("Info : " + info);
</script>
</body>
</html>

hope this helps, believes

+3
source

I used this script and called it a ready-made function: Note. I used warnings here to know how to use them.

 <script type="text/javascript">
     $(document).ready(function () {
         alert(getAcrobatInfo().browser);
         alert(getAcrobatInfo().acrobat === "installed");
         alert(getAcrobatInfo().acrobatVersion);
     });


     var getAcrobatInfo = function () {

         var getBrowserName = function () {
             return '<%=Session["browser"].ToString()%>';
         };

         var getActiveXObject = function (name) {
             try { return new ActiveXObject(name); } catch (e) { }
         };

         var getNavigatorPlugin = function (name) {
             for (key in navigator.plugins) {
                 var plugin = navigator.plugins[key];
                 if (plugin.name == name) return plugin;
             }
         };

         var getPDFPlugin = function () {
             return this.plugin = this.plugin || function () {
                 if (getBrowserName() == 'ie' || getBrowserName().toLocaleLowerCase() == 'internetexplorer') {
                     //
                     // load the activeX control
                     // AcroPDF.PDF is used by version 7 and later
                     // PDF.PdfCtrl is used by version 6 and earlier
                     return getActiveXObject('AcroPDF.PDF') || getActiveXObject('PDF.PdfCtrl');
                 }
                 else {
                     return  getNavigatorPlugin('Adobe Acrobat') || getNavigatorPlugin('Chrome PDF Viewer') || getNavigatorPlugin('WebKit built-in PDF') || getWebKitPlugin();
                 }
             }();
         };
         var getWebKitPlugin = function () {
             for (var key in navigator.plugins) {
                 var plugin = navigator.plugins[key];
                 if (plugin.name && plugin.name.substring(0, 6) == "WebKit" && (plugin.name.indexOf("pdf") != -1 || plugin.name.indexOf("PDF") != -1)) return plugin;
             }
         };
         var isAcrobatInstalled = function () {
             return !!getPDFPlugin();
         };
         var getAcrobatVersion = function () {
             try {
                 var plugin = getPDFPlugin();

                 if (getBrowserName() == 'ie' || getBrowserName().toLocaleLowerCase() == 'internetexplorer') {
                     var versions = plugin.GetVersions().split(',');
                     var latest = versions[0].split('=');
                     return parseFloat(latest[1]);

                 }
                 if (plugin.version) return parseInt(plugin.version);
                 return plugin.name


             }
             catch (e) {
                 return null;
             }
         }

         // The returned object
         return {
             browser: getBrowserName(),
             acrobat: isAcrobatInstalled() ? 'installed' : false,
             acrobatVersion: getAcrobatVersion()
         };
     };
</script>

Also add this code behind:

  public void detectBrowser()
     { //Set the Browser session variable
       System.Web.HttpBrowserCapabilities browser = Request.Browser;
       Session["Browser"] = browser.Browser;
    }

Hope this helps.

+1
source

Source: https://habr.com/ru/post/1722580/


All Articles