Подтвердить что ты не робот

Wkhtmltopdf segfaults

Я пытаюсь поместить wkhtmltopdf на виртуальный сервер ubuntu 12.04 64-битного сервера. Пока не повезло. Пакет из репозиториев хочет запустить xserver и статическую версию:

wkhtmltopdf google.com tesss.pdf
Loading pages (1/6)
QSslSocket: cannot resolve SSLv2_client_method               ] 10%
QSslSocket: cannot resolve SSLv2_server_method
Counting pages (2/6)                                               
Resolving links (4/6)                                                       
Loading headers and footers (5/6)                                           
Printing pages (6/6)
QPixmap: Cannot create a QPixmap when no GUI is being used===] Page 1 of 1
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
QPixmap: Cannot create a QPixmap when no GUI is being used
Segmentation fault

Любые идеи, как я могу подойти к этому?

4b9b3361

Ответ 2

Ошибки QPixmap не вызывают ошибки сегментации. Фактически, добавление опции --disable-javascript решает проблему. Вы все равно получите предупреждения, но PDF-код будет создан правильно. НТН.

Ответ 3

используется двоичный файл: wkhtmltopdf 0.11.0 rc1 linux i386

Я видел ошибки сегментации при преобразовании страниц с встроенным API Javas Google Maps. В этих случаях генерировался выходной файл с размером 0 байтов. Не удалось найти решение для запуска этой версии с помощью различных аргументов командной строки в wkhtmltopdf.

Наконец, переключился на Google Maps Static API, чтобы предотвратить тяжелую работу JS, что, похоже, вызывает проблему. Это просто вставляет карту как статическое изображение, которое выглядит довольно хорошо при печати, если вы поставляете scale = 2 в качестве опции.

Ответ 4

У меня была аналогичная проблема (segfault), и выяснилось, что у меня установлен лимит ulimit -v (виртуальная память) при выполнении wkhtmltopdf из apache. Все работает нормально из командной строки при использовании одной и той же команды.

Мне удалось подогнать его, добавив команду с ulimit следующим образом: "ulimit -v 1073741824; wkhtmltopdf - письмо с размером страницы..."