Я работаю над вызовом файла .exe с активным WScript.shell activeX. Файл wkhtmltopdf.exe и используется для преобразования HTML-страницы в .pdf. Все работает хорошо, когда я просто вызываю C: \ wkhtmltopdf.exe в коде. Он запускается и затем закрывается правильно. Но моя проблема заключается в том, что вам нужно запустить его из cmd с именем программы, а затем с именем HTML-файла, за которым следует имя .pdf, которое вы хотите создать.Использование активного скрипта WScript.shell для выполнения командной строки
Например:
c:\wkhtmltopdf.exe c:\PDFTestPage.html c:\TEST.pdf
Это будет вызывать wkhtmltopdf.exe, прочитать C: \ PDFTestPage.html, а затем создать C: \ test.pdf. Хорошо работает, когда я печатаю его в cmd.
Кто-нибудь знает ActiveX, который не будет запускаться и .exe, но фактически выполняет командную строку?
Вот мой код, который я использую в настоящее время.
function callShellApplication(){
var objShell = new ActiveXObject("WScript.shell");
objShell.run('"c:\wkhtmltopdf.exe"');
}
Хотелось бы, чтобы это было следующим.
function callShellApplication(){
var objShell = new ActiveXObject("WScript.shell");
objShell.run('"c:\wkhtmltopdf.exe c:\PDFTestPage.html c:\TEST.pdf"');
}
Также примечание стороны. По какой-то причине я не могу запустить .exe с абсолютного пути. Я должен перейти в каталог, а затем просто ввести wkhtmltopdf.exe. Путь заполнения:
C:\Program Files (x86)\wkhtmltopdf\wkhtmltopdf.exe
Я действительно работаю только с UNIX, поэтому я не уверен в пробелах на пути. Я могу сделать chdir с пробелами, но я не могу использовать путь заполнения при его выполнении. Любая информация будет полезна. Заранее спасибо.
Почему вы не сделать простой CGI, который делает это, и избежать ACTIVEX что IE только и разрешения кошмар? – epascarello
Это нужно запустить в интрасети, а IE всегда является браузером по умолчанию. – JoBaxter