У меня возникли проблемы при тестировании на примере библиотеки 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');
Ваша помощь / предложения / советы будут очень оценены. Заранее спасибо!
Попробуйте сначала сохранить 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
Моя догадка 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 бинарная установка как зависимость от композитора