Командная строка cfexecute
Я только что установил wkhtmltopdf, который конвертирует веб-страницы в pdfs.
Я могу запустить его из командной строки на сервере следующим образом:
wkhtmltopdf http://www.google.co.uk c:\google.pdf
wkhtmltopdf был добавлен в переменную окружения path. Реальный путь к exe-файлу - C:\Program Files\wkhtmltopdf\wkhtmltopdf.exe
Теперь я хочу запустить это с ColdFusion 8, используя cfexecute.
<cfexecute name="c:\Program Files\wkhtmltopdf\wkhtmltopdf.exe"
arguments="wkhtmltopdf http://www.google.com c:\google.pdf"
timeout="10" />
Я пробовал несколько разных вариантов, но не могу заставить его работать.
У меня также были сообщения "Ошибка 5: доступ запрещен", но я понимаю, что это может быть проблема с синтаксисом, а не с правами.
Кто-нибудь может увидеть проблемы с моим кодом?
2 ответа
ОК ПОЛУЧИЛ ЭТО РАБОТАЕТ!...
<cfexecute name="c:\Program Files\wkhtmltopdf\wkhtmltopdf.exe"
arguments="http://www.google.com C:\google.pdf"
timeout="10" />
Синтаксис немного отличается от командной строки, которую я запускал в Windows.
Знаете ли вы, что ColdFusion имеет возможность конвертировать HTML в PDF встроенный? Смотрите тег cfdocument.
Вот очень простой пример, который должен работать:
<cfhttp method="get" url="http://www.google.com" timeout="10" />
<cfif cfhttp.StatusCode EQ "200 OK">
<cfdocument format="PDF" localurl="false">
<cfoutput>#cfhttp.FileContent#</cfoutput>
</cfdocument>
<cfelse>
<p>http request failed [<cfoutput>#cfhttp.StatusCode#</cfoutput>]</p>
</cfif>
Я не знаю, сколько функций вам нужно от PDF-конвертера, но для простых конверсий cfdocument
тег работает довольно хорошо.