Отображение создания PDF-файла Laravel (библиотека snappy), возвращающее ERR_INVALID_RESPONSE

У меня возникли проблемы при тестировании на примере библиотеки snappy. когда я пытаюсь отобразить с помощью функции getOutput, браузер возвращает ERR_INVALID_RESPONSE. я попробовал решение опубликовано Вот но это не работает для меня.

вот мой код моей функции:

    // Display the resulting pdf in the browser
// by setting the Content-type header to pdf
$snappy = new Pdf('/usr/local/bin/wkhtmltopdf');
header('Content-Type: application/pdf',true,200);
header('Content-Disposition: attachment; filename="file.pdf"');
echo $snappy->getOutput('http://www.github.com');

Ваша помощь / предложения / советы будут очень оценены. Заранее спасибо!

0

Решение

Попробуйте сначала сохранить PDF в локальном хранилище, а затем вернуть ответ.

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

$snappy = new Pdf('/usr/local/bin/wkhtmltopdf');
$snappy->save('path/to/your/storage');
$response = Response::make(Storage::get('path/to/your/storage'), 200);
$response->header("Content-Type", 'application/pdf');
$response->header("Content-Disposition", 'attachment; filename=file.pdf');
return $response;

Поскольку вы используете Laravel, я бы посоветовал вам использовать оболочку Laravel для snappy

Snappy PDF / Image Wrapper для Laravel 5 и Lumen 5.1

0

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

Моя догадка wkhtmltopdfДвоичный файл отсутствует.
Вы можете установить его, выполнив эту команду из папки, в которой находится ваш проект Laravel:

$ composer require h4cc/wkhtmltopdf-i386 0.12.x

или для 64-битной системы:

$ composer require h4cc/wkhtmltopdf-amd64 0.12.x

Затем вам нужно изменить эту строку в вашей функции:

$snappy = new Pdf('/usr/local/bin/wkhtmltopdf');

в

$snappy = new Pdf(base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'));

источник: Wkhtmltopdf бинарная установка как зависимость от композитора

0

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