$url = 'http://google.com';
$command = 'cd /path/to/pdf && wkhtmltopdf.sh ' . $url . ' filename.pdf';
exec($command);
if (file_exists("/path/to/pdf/filename.pdf")) {
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="filename.pdf"');
readfile('/path/to/pdf/filename.pdf');
}
unlink("/path/to/pdf/filename.pdf");
Скачать wkhtmltopdf. Или установить через пакетный менеджер
$ sudo apt-get install wkhtmltopdf
Распаковать в директорию /usr/local/bin/
Переименовать в wkhtmltopdf, получится /usr/local/bin/wkhtmltopdf
Выставить права
$ sudo chmod a+x /usr/local/bin/wkhtmltopdf
Установить дополнительные пакеты
$ sudo apt-get install openssl build-essential xorg libssl-dev
Проверить работает ли?
$ /usr/local/bin/wkhtmltopdf http://www.google.com test.pdf
Если работает то все хорошо. Если ошибка “Cannot connect to X server” тогда продолжить с пункта 7.
Установить дополнительный пакет
$ sudo apt-get install xvfb
Создать небольшой скрипт, записать в файл wkhtmltopdf.sh
xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "$@"
Переместить файл wkhtmltopdf.sh
в /usr/local/bin
и выставить права:
$ sudo mv wkhtmltopdf.sh /usr/local/bin/wkhtmltopdf.sh
$ sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh
проверить еще раз
$ /usr/local/bin/wkhtmltopdf.sh http://www.google.com test.pdf