邮件发送与服务端导出插件

2022-7-25 Guide
  • 管理员
  • 运维
About 9 min

# pkg-puppeteer插件

pkg-puppeteer插件用于服务端模拟请求看板页面,生成看板截图,比如: 定时任务邮件发送、大屏导出。

该插件基于Google Chrome团队的puppeteer开发,使用pkg打包成不同平台的可执行文件,避免了用户在安装时对依赖的nodejs。 puppeteer是phantomjs停止更新维护之后服务端模拟请求页面截图更好的选择,比phantomjs兼容性更好,功能更加强大。

提示

pkg-puppeteer插件由我们提供, 此外用户不需要安装nodejs相关环境

我们为用户准备的导出插件自带chromium,目录结构如下

  • linux平台
|-- chromium
|   `-- chrome-linux
|-- pkg-puppeter-linux

pkg-puppeter-linux 会通过相对路径调用chromium/chrome-linux
1
2
3
4
5
  • windows平台
|-- chromium
|   `-- chrome-win
|-- pkg-puppeter-win.exe
1
2
3

关于chromium

不同操作系统的chromium运行依赖各有不同,具体参照官方文档chrome-headless-doesnt-launch (opens new window)

# 测试Chromium是否能够正常运行

进入chromium/chrome-linux

出现下面的提示为能正常运行

root @ tcc4 in /opt/pkg-puppeteer/chromium/chrome-linux [10:07:21] $ ./chrome [15657:15657:0326/100725.664920:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.

出现下面的提示为不能正常运行

[root@VM_0_4_centos chrome-linux]# ./chrome ./chrome: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory

# Chromium依赖安装

# CentOS7

yum install -y pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc
1

# CentOS8

sudo yum install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
1
sudo yum install -y chromium
sudo yum install -y chromium libmng libXScrnSaver libXv
1
2

# Ubuntu20

sudo apt-get install -y nodejs gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget libgbm-dev libxshmfence-dev
1
  • MacOSX, Windows(只支持64位操作系统) 暂时发现可以直接运行

# 系统配置指定插件安装目录

# 通过配置文件修改

# [必须修改] 看板导出、邮件发送依赖插件安装目录
## Linux配置
pkg_puppetter=/xxx/pkg-puppeteer/pkg-puppeter-linux
## Windows配置
pkg_puppetter=/xxx/pkg-puppeteer/pkg-puppeter-win-x64.exe
# [必须修改] 导出插件模拟请求地址
frontend.baseurl=http://localhost:8026/cboard
# [可选配置] 导出插件请求参数, 可以设置模拟请求浏览器高宽与缩放
pkg.puppetter.args=-DvpWidth=1920 -DvpHeight=1080
1
2
3
4
5
6
7
8
9

提示

配置文件修改之后需要重启服务

# 通过系统配置页面修改

配置内容同上, 配置文件修改之后不需要重启服务

# 依赖字体安装(导出中文乱码时安装)

下载字体 (opens new window)font目录

# linux

进入font目录

mkdir /usr/share/fonts/custom
cp *.ttf  /usr/share/fonts/custom
fc-cache -fv
1
2
3

# Windows

直接拷贝字体文件到Windows字体目录

C:\WINDOWS\Fonts

安装字体完成之后需要重启BI服务

Last update: April 10, 2025 14:38