为 xvfb-run 和 wkhtmltopdf / wkhtmltoimage 设置分辨率

13

我正在拼命尝试为xvfb-run提供一些分辨率参数,以便使用wkhtmltox在不同的分辨率下截取网站的屏幕截图。

我同时在CentOS上使用xvfb-run和wkhtmltox。

xvfb-run --server-args="-screen 0 1024x768x24" wkhtmltoimage http://www.whatismyscreenresolution.com/ /tmp/bla.png

很遗憾,我的论点并未得到 xvfb-run 的认可。它总是以 800x600 的分辨率运行。我在这里做错了什么?

感谢任何帮助!

3个回答

7

您忘记了这个选项:--use-xserver

所以完整的命令是:

xvfb-run --server-args="-screen 0 1024x768x24" wkhtmltoimage --use-xserver http://www.whatismyscreenresolution.com/ /tmp/bla.png

(我使用了wkhtmltopdf进行测试,但使用wkhtmltoimage应该是相同的)

1
@kip:如果您能写下具体哪里出了问题,那将会很有帮助。根据点赞数(以及缺乏其他评论),这个解决方案应该是可行的,而且在我使用时确实有效。 - johndodo
1
对于未来的谷歌搜索者,我尝试了这个方法,但是出现了“Xvfb启动失败”的问题。后来我发现需要在服务器参数中包含“:1”: --server-args=":1 -screen 0 1024x768x24" - mltsy

2
在参数之间添加逗号。在你的情况下是"-screen 0, 1024x768x24"。 如果有帮助,请告诉我。 祝好, HBK

1

你是否正在使用已打补丁的QT运行wkhtmltoimage?如果你的QT版本没有打补丁,很多功能将被忽略,包括从xvfb-run发送的任何命令。

你可以这样检查你的版本:

/usr/bin/wkhtmltoimage --version

将路径更改为您存储wkhtmltoimage文件的位置。如果返回的版本不包括“patched QT”,那么这可能是您应该开始的地方。您可以从此处下载已修补的QT版本:

https://wkhtmltopdf.org/downloads.html

安装一个打了补丁的QT版本并不是太复杂,可以尝试以下变化(我正在运行Ubuntu 20,其他发行版需要微调):

cd ~
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb
sudo apt-get install -f
/usr/local/bin/wkhtmltoimage --version

祝你好运。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接