使用phantomjs将pyecharts生成的html渲染为png

118 阅读1分钟

安装phantomjs但phantomjs将html转为png失败

apt-get安装phantomjs

sudo apt update
sudo apt install -y build-essential chrpath libssl-dev libxft-dev
sudo apt install -y libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev sudo apt install phantomjs

安装二进制编译包

理论上对linux系统不应该有依赖,最初是在debain 10系统上安装phantomjs,无论上直接apt-get包管理安装还是直接安装编译后的二进制代码包,都提示

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'

Could not connect to any X display.

qt.qpa.screen: QXcbConnection: Could not connect to display

Could not connect to any X display.

panfake.com/2020/03/qxc…

首先 vim ~/.bashrc 然后把下面的这句话加进去,第一行就可以 export QT_QPA_PLATFORM='offscreen' 运行如下命令使配置生效 source ~/.bashrc

linux安装编译后的版本

phantomjs.org/download.ht…

wget bitbucket.org/ariya/phant… tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2 cd phantomjs-2.1.1-linux-x86_64 bin/phantomjs -v bin/phantomjs example/hello.js ln -sf /home/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs phantomjs -v

qt.qpa.plugin:Could not load the Qt platform plugin “xcb“问题

debain 10系统安装编译后的二进制版本依然报错,一直提示QT Platform只支持phantom插件,无法配置offscreen, 最终在ubuntu 20系统上成功安装编译后的二进制版本

中文乱码

用phantomjs去截取中文页面的网站可能会出现乱码的情况,也就是截图中中文的位置全是方框。

解决办法就是安装字体。

在centos中执行:yum install bitmap-fonts bitmap-fonts-cjk

在ubuntu中执行:sudo apt-get install xfonts-wqy

这样再去截图中文的页面就不会出现一堆的方框了。

参考链接

Phantomjs 2 does not build on debian 6

使用phantomjs将pyecharts生成的html渲染為png

How to install PhantomJS on Ubuntu

Phantomjs 2 does not build on debian 6

Doesn't work on Debian Buster (10.3) and Fedora v34 - to fix in next release

set QT_QPA_PLATFORM env variable causes crash