Файл Laravel snappy не был создан

Я пытаюсь создать 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’ — размер страницы ‘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 ignore)
Выход с кодом 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.

0

Решение

хмм

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

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

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

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]