wkhtmltopdf segfaults

Я пытаюсь поместить wkhtmltopdf на сервер virtualbox'Ed ubuntu 12.04 64bit. Пока безуспешно. Пакет из репозиториев хочет иметь запущенный 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

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

4 ответов


http://code.google.com/p/wkhtmltopdf/issues/detail?id=730

в основном, он был исправлен около года назад, но до сих пор не был выпущен. Какой ужас :(

попробуйте использовать 0.10.0_rc2 версия вместо этого, что отлично сработало для меня


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


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

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

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


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

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