Image , pdf generator symfony

задача подключить PDF генератор для Symfony

добавиляем библиотеку через композер, запуская команду из директории проекта.

composer require knplabs/knp-snappy-bundle

Прописываем в кернеле

// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        //...
        new Knp\Bundle\SnappyBundle\KnpSnappyBundle(),
        //...

Прописываем в конфиге

 

# app/config/config.yml
knp_snappy:
    pdf:
        enabled:    true
        binary:     /usr/local/bin/wkhtmltopdf #"\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe\"" for Windows users
        options:    []
    image:
        enabled:    true
        binary:     /usr/local/bin/wkhtmltoimage #"\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltoimage.exe\"" for Windows users
        options:    []

Для теста где нибудь в контроллере прописываем

$this->get('knp_snappy.pdf')->generate('http://www.google.com', 'file.pdf');

Вот инструкция от производителя если нужно

Теперь надо на комп поставть сам конвертор wkhtmltopdf

Он находится прямо на сайте

я скачивал на мак и на линукс. вот сами файлики. (если сам сайт поменяет ссылку)

Мак

линукс

на мак ставится как обычная программа. сохраняется в

binary:     /usr/local/bin/wkhtmltopdf

Что бы поставить на сервак, заливаю сами файлы:

Mini-Nikitos:wkhtmltox nik$ pwd

/Users/nik/Downloads/wkhtmltox

Mini-Nikitos:wkhtmltox nik$ ls

bin include lib share

scp -r * admin@concert:/home/admin/wkhtmltox

на самом сервере видим файлы:

-sh-4.2$ ls -la

итого 4100

drwxrwxr-x  6 admin admin    4096 сен 28 12:35 .

drwx--x--x 13 admin admin 4173824 сен 28 12:54 ..

drwxr-xr-x  2 admin admin    4096 сен 28 12:34 bin

drwxr-xr-x  3 admin admin    4096 сен 28 12:35 include

drwxr-xr-x  2 admin admin    4096 сен 28 12:35 lib

drwxr-xr-x  3 admin admin    4096 сен 28 12:35 share

-sh-4.2$ pwd

/home/admin/wkhtmltox


Заливаем файлы на сервер через гит, прогоняем composer update

Mini-Nikitos:concert nik$ git add *

The following paths are ignored by one of your .gitignore files:

vendor

web

Use -f if you really want to add them.

Mini-Nikitos:concert nik$ git commit -m 'PDF 1 step'

[master 3d545a9] PDF 1 step

 6 files changed, 204 insertions(+), 49 deletions(-)

Mini-Nikitos:concert nik$ git push origin master

на сервер пулл:

-sh-4.2$ git pull origin master

Гоним композер

-sh-4.2$ composer update

так как локально и на сервере пути разные для файла то меняем в конфиге на сервере

-sh-4.2$ vim app/config/config.yml 
knp_snappy:

    pdf:

        enabled:    true

        binary:     /home/admin/wkhtmltox/bin/wkhtmltopdf #"\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe\"" for Windows users

        options:    []

    image:

        enabled:    true

        binary:      /home/admin/wkhtmltox/bin/wkhtmltoimage #"\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltoimage.exe\"" for Windows users

        options:    []

При выполнении команды

$this->get('knp_snappy.pdf')->generate('http://www.google.com', 'file.pdf');

будет создан файл в директории web