2013-12-18 5 views
1

Я разрабатываю небольшой проект для автоматического создания отчетов для этой цели. Я разрабатываю HTML-код, который я конвертирую в pdf, используя wkhtmltopdf.wkhtmltopdf --use-xserver option

Я разработал решение, использующее версию Windows, и у меня возникли проблемы при переходе на Linux.

При переносе в Linux диаграммы, которые я генерировал с помощью javaScript, которые не были обработаны должным образом, после выполнения некоторых исследований я выяснил, что для решения было использовать параметр wkhtmltopdf --use-xserver, я попробовал его на терминале, и он работал в совершенстве.

Вот где моя проблема приходит:

я могу использовать опцию --use-XServer с моим пользователем и привилегированный пользователь без каких-либо проблем, но когда мое приложение использует «TOMCAT» пользователь выполнить wkhtmltopdf с --use-XServer варианта дает следующее сообщение об ошибке:

No protocol specified. 
Wkhtmltopdf: Cannot conect to X server :0.0 

Я попытался изменить разрешения и право собственности на wkhtmltopdf исполняемого к TOMCAT пользователю, но до сих пор она работает с другими пользователями, но не с «котом» ,

Я также попытался установить право собственности и группу на корень root, активировать бит SUID, чтобы дать каждому другому пользователю root-разрешения выполнить его, но все равно.

Любые подсказки ??

Я совершенно потерян.

ответ

1

Наконец-то я нашел решение.

Сначала необходимо установить Xvfb:

sudo apt-get install xvfb 

После этого необходимо запустить wkhtmltopdf внутри Xvfb, чтобы иметь графический интерфейс:

xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltopdf --use-xserver file1.html file2.pdf 

Это также Возможное выполнить без указания серверных аргументов:

xvfb-run wkhtmltopdf --use-xserver file1.html file2.pdf