Skip to content

Instantly share code, notes, and snippets.

@ivanlemeshev
Created August 26, 2015 09:54
Show Gist options
  • Save ivanlemeshev/8fa26f217dee91ffce89 to your computer and use it in GitHub Desktop.
Save ivanlemeshev/8fa26f217dee91ffce89 to your computer and use it in GitHub Desktop.
HTML to PDF
$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");

Установка на Ubuntu

Скачать 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment