我正在开发一个小项目,用于自动生成报告。为此,我正在开发一些HTML,使用WKHTMLTOPDF将其转换为PDF格式。
我用windows版本开发了一个解决方案,在迁移到linux时遇到了麻烦。
当迁移到Linux时,我用JavaScript生成的图表并没有正确呈现,在做了一些研究之后,我发现解决方案是使用wkhtmltopf--useXserver选项,我在终端上试用了它,它工作得很好。
这就是我的问题所在:
我可以对我的用户和根用户使用--use xserver选项,没有任何问题,但是当我的应用程序使用“tomcat”用户执行wkhtmltopdf和--use xserver选项时,会出现以下错误:

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

我试图修改wkhtmltopdf可执行文件对tomcat用户的权限和所有权,但它仍然可以与其他用户一起使用,但不能与“tomcat”一起使用。
我还尝试将ownership和group设置为root,并激活位suid,以便为其他用户提供执行它的root权限,但仍然是这样。
有线索吗?是吗?
我完全迷路了。

最佳答案

最后我找到了解决办法。
首先需要安装xvfb:

sudo apt-get install xvfb

在此之后,必须在xvfb中运行wkhtmltopdf才能有一个图形界面:
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltopdf --use-xserver file1.html file2.pdf

也可以在不指定服务器参数的情况下执行:
xvfb-run wkhtmltopdf --use-xserver file1.html file2.pdf

关于linux - wkhtmltopdf --use-xserver选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20653202/

10-13 07:23