为了这个目的,我正在开发一个用于自动生成报告的小项目我正在开发一些使用wkhtmltopdf转换为pdf的HTML。
我使用Windows版本开发了一个解决方案,在迁移到Linux时遇到了麻烦。
当迁移到Linux时,我用javaScript生成的图表没有正确呈现,经过一些研究后我发现解决方案是使用wkhtmltopdf --use-xserver选项,我在终端上尝试了它并且它工作得很好
以下是我的问题所在:
我可以使用--use-xserver选项与我的用户和root用户没有任何问题,但是当我的应用程序使用“tomcat”用户使用--use-xserver选项执行wkhtmltopdf时,它会出现以下错误:
No protocol specified.
Wkhtmltopdf: Cannot conect to X server :0.0
我曾尝试将wkhtmltopdf可执行文件的权限和所有权修改为tomcat用户,但仍然可以与其他用户一起使用,但不能与“tomcat”一起使用。
我还试图将所有权和组设置为root root,激活位SUID以便为每个其他用户root权限执行它,但仍然是相同的。
任何线索?
我很失落。
答案 0 :(得分:2)
最后我找到了解决方案。
首先需要安装xvfb:
sudo apt-get install xvfb
在此之后,有必要在xvfb中运行wkhtmltopdf以获得图形界面:
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltopdf --use-xserver file1.html file2.pdf
在没有指定服务器args的情况下执行也是可行的:
xvfb-run wkhtmltopdf --use-xserver file1.html file2.pdf