We help IT Professionals succeed at work.

Opening a PDF Reader with Javascript and ActiveXObject

Hi, I've been trying to get the following code to work, it accesses what kind of PDF Reader the computer has and then should load it in the appropriate reader. The start, loads word and excel documents just fine in the applications I would like PDFs to do the same. This is in IE only and runs purely on an internal intranet. Maybe there's a totally better way to do this. This is also a classic ASP website.
If someone can give me some help I would really appreciate it!


function open_document()
   {
      var document_object = "c:\documents\userguide.pdf";
      var extension = "pdf";
    
    if (extension == "csv" || extension == "xls")
    {
     var xlApp = new ActiveXObject("Excel.Application");
     xlApp.Visible = 'True';
     var wb = xlApp.Workbooks;
     wb.Open(document_object.path);
    }
 
    if (extension == "txt" || extension == "doc")
    {
     var wdApp = new ActiveXObject("Word.Application");
     wdApp.Visible = 'True';
     var wdDoc = wdApp.Documents;
     wdDoc.Open(document_object.path);
    }
 
    if (extension == "pdf")
    {
     var isInstalled = false;
     var version = null;
     if (window.ActiveXObject)
     {
      var control = null;
      try
      {
       // AcroPDF.PDF is used by version 7 and later
       control_text = "AcroPDF.PDF";
       control = new ActiveXObject(control_text);
      }
      catch (e)
      {
       // Do nothing
      }
      if (!control)
      {
       try
       {
        // PDF.PdfCtrl is used by version 6 and earlier
        control_text = "PDF.PdfCtrl";
        control = new ActiveXObject(control_text);
       }
       catch (e)
       {
        return;
       }
      }
      if (control)
      {
       isInstalled = true;
       version = control.GetVersions().split(",");
       version = version[0].split("=");
       version = parseFloat(version[1]);
       
       /********************************************
       ** Using the control object I would like to 
       **     load the reader and pdf here        **
       *********************************************/
      }
      else
      {
       alert("Could not find recent version of Adobe PDF Reader on this machine. Please install and try again");
      }
     }
    }
   }

Open in new window

Comment
Watch Question

Michel PlungjanIT Expert
Top Expert 2009

Commented:
I looked hard but could not find a

xxx = new ActiveXObject('aaa.bbb')
xxx.open()

for acrobat reader

Author

Commented:
Hi, never tried this, would it be possible for someone to build their own activeXObject that you could use through javascript to load various programs?
Since this particular site was internal I decided to use the shell active x control to load all my external files from the network. Also using the shell object allows the system to do the work of figuring out what programs to launch the various file type in.