Файл Laravel snappy не был создан - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь создать pdf с помощью Laravel snappy.

Проблема в том, что когда я пытаюсь запустить команду wkhtmltopdf в консоли, например:

wkhtmltopdf http://google.com google.pdf

, она работает нормально и генерирует pdf,

Но когда я пытаюсь сгенерировать pdf в моем контроллере, он выдает это исключение:

RuntimeException
Файл '/ home / alemil /Проекты / test / storage / app / year_reports / Pdf test.pdf ' не был создан (команда: / usr / local / bin / wkhtmltopdf --lowquality --orientation' landscape '- page-size'a3 '' /tmp/knp_snappy5bb49cd6bfcf14.16728595.html '' / home / alemil / Projects / test / storage / app / year_reports / Pdf test.pdf ').

Я пытался скопировать команду вышеи выполнить прямо в консоли.Вот что я получаю:

Загрузка страниц (1/6) Ошибка: не удалось загрузить http://tmp/knp_snappy5bb49cd6bfcf14.16728595.html, с кодом состояния сети 3 и кодом состояния http 0 - хост tmp не найден Ошибка:Не удалось загрузить страницу http: ///tmp/knp_snappy5bb49cd6bfcf14.16728595.html (иногда это будет работать просто для игнорирования этой ошибки с игнорированием --load-error-processing) Выход с кодом 1 из-за сетевой ошибки:HostNotFoundError

Как я вижу, он пытается извлечь локальный файл, поскольку он удален.Я не смог найти эту проблему, поэтому я спрашиваю, может ли кто-нибудь решить эту проблему или имеет какие-либо идеи.

Моя среда - Ubuntu 18.04 PHP и PHP 7.2.10.

Это мой код:

    // app.php aliases
   'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,    

    // controller code
    PDF::loadView('admin.reports.annual.pdf_template', $data)
        ->setPaper('a3', 'landscape')
        ->save(
            storage_path('app/annual_reports/') . $report->pdf, 
            true // when there is file with same name it throws file already exists so I had to set owerwrite to true
        );

Кроме того, еще один момент, на который я хотел обратить внимание, я использовал barryvdh / laravel-dompdf, и все работало нормально, за исключением того, что он не может отображать графики, поэтому я сейчас пытаюсь настроить snappy.

1 Ответ

0 голосов
/ 03 октября 2018

хмм

Я думаю (не уверен), что в вашем приложении есть блокировка, которая блокирует доступ вашего контроллера к ссылке.Или при создании PDF.

Это также может быть ваш синтаксис кода.

вы можете попробовать это для html:

$pdf = new Pdf('/usr/local/bin/wkhtmltopdf');
$pdf->generateFromHtml('<h1>test</h1><p>test from test</p>', '/tmp/test-123.pdf');
...