У меня есть проект Silex, где я хочу сгенерировать PDF просмотра этого проекта.
Я установил локально wkhtmltopdf на OSX, и я использую кусачий.
Например, вы на localhost:8001/test/702254
и страница появляется. Если вы получаете доступ localhost:8001/test/702254/print
тогда страница будет PDF предыдущего (я хочу, чтобы браузер показывал PDF клиенту, тогда он может загрузить его).
У меня есть переменная в моих маршрутах, и если она имеет значение ‘print’, я хочу отобразить PDF.
$body = null;
$headers = null;
if ($request->get('print') == 'print') {
$uri = str_replace('/print', '', $_SERVER['REQUEST_URI']);
$this->snappy->setOption('cookie', array('MY-COOKIE' => $_COOKIE['MY-COOKIE']));
//$this->snappy->setTimeout(360);
$body = $this->snappy->getOutput('http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}{$uri}");
$headers = array(
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="Export.pdf"'
);
}
else {
$body = $app['twig']->render('views/index.html.twig', $twigParams);
$headers = array('Cache-Control' => 'max-age=300, public');
}
return new Response($body, 200, $headers);
Моя проблема заключается в том, что при вызове URL-адреса с помощью «/ print» возникает следующая ошибка:
ProcessTimedOutException in Process.php line 1211:
The process "/usr/local/bin/wkhtmltopdf --lowquality --cookie 'MY-COOKIE' '4vkvcjnt2svf0' 'http://localhost:8001/test/702254' '/var/folders/2h/qwnt4dk97dsg1mhv_63ycbrh0000gp/T/knp_snappy574713575a5e51.78801388.pdf'" exceeded the timeout of 60 seconds.
Я надеюсь, что это не проблема OSX, как я читал в некоторых темах …
Задача ещё не решена.
Других решений пока нет …