Sto lavorando per chiamare un file .exe con un activex WScript.shell. Il file è wkhtmltopdf.exe e viene utilizzato per convertire una pagina HTML in un file .pdf. Tutto funziona bene quando sto chiamando C: \ wkhtmltopdf.exe nel codice. Funziona e poi si chiude correttamente. Ma il mio problema è che è necessario eseguirlo da cmd con il nome del programma, quindi il nome del file HTML che si sta leggendo seguito dal nome .pdf che si desidera venga creato come.Utilizzo di un activeX WScript.shell per eseguire una riga di comando
Ad esempio:
c:\wkhtmltopdf.exe c:\PDFTestPage.html c:\TEST.pdf
Questo chiamerà wkhtmltopdf.exe, leggere c: \ PDFTestPage.html, quindi creare c: \ test.pdf. Funziona bene quando lo digito in cmd.
Qualcuno conosce un activeX che non eseguirà solo .exe ma eseguirà effettivamente una riga di comando?
Ecco il mio codice che sto attualmente utilizzando.
function callShellApplication(){
var objShell = new ActiveXObject("WScript.shell");
objShell.run('"c:\wkhtmltopdf.exe"');
}
Vorrei davvero che fosse il seguente.
function callShellApplication(){
var objShell = new ActiveXObject("WScript.shell");
objShell.run('"c:\wkhtmltopdf.exe c:\PDFTestPage.html c:\TEST.pdf"');
}
Anche nota a margine. Per qualche motivo non posso lanciare l'exe da un percorso assoluto. Devo passare alla directory e quindi digitare wkhtmltopdf.exe. Il percorso di riempimento è il seguente:
C:\Program Files (x86)\wkhtmltopdf\wkhtmltopdf.exe
Realmente lavoro solo con UNIX quindi non sono sicuro degli spazi nel percorso. Posso fare un chdir con gli spazi ma non posso usare il percorso di riempimento quando lo eseguo. Qualsiasi informazione sarebbe utile. Grazie in anticipo.
Perché non fare un semplice cgi che lo fa ed evitare ActiveX che è solo con IE e un incubo di autorizzazioni? – epascarello
Questo deve essere eseguito su una rete intranet e IE è sempre il browser predefinito. – JoBaxter