Leanote 中的 wkhtmltopdf 的设置

最近需要为自己在公司里负责的项目做一些文档管理,有几个方案 比如 纯 html 和 js 实现的 mdwiki,基于 php 实现的 doduwiki,还有之前也体验过的 leanote 服务,最后选择了 leanote ... 在导出文档为 pdf 时出现了点意外 ...

问题是这样的

正好刚刚整理了一个接口文档,需要导出并发送邮件给同事,第一个想起来的就是使用 leanote 自带的导出功能,把文稿导出为 pdf 文件。结果,悲催了,导出失败,没有任何下载提示。用管理员登录 leanote 的后台管理功能,查看系统中的配置和服务器上的命令都是存在的。

但就是无法导出文件!

问题排查

接下来回到自己的帐号,查看服务器上 leanote 运行日志,结果发现了下面这行

QXcbConnection: Could not connect to display

搜索了一下,原来是 wkhtmltopdf 需要使用 X window 的模式,有一个叫 xvfb 的工具,可以模拟一个假的 X window 以供软件执行。

我使用的是 Ubuntu 的服务器,与 Debian 系一致,安装命令如下

apt install -y xvfb

最后蚂蚁笔记后台中 导出 pdf 中配置的 wkhtmltopdf 路径设置为
xvfb-run /usr/bin/wkhtmltopdf

注意这里填写的命令实际上是 2 个,第一个是 xvfb-run 第二个才是 wkhtmltopdf

就行了

导出文件中的中文丢失

导出文件后,打开一看,又一次傻眼了,里面的中文都空白了,没有中文嵌入

搜索了一下原因,中文字体没有啊~ 再装个中文字体吧。

apt install xfonts-wqy

最后导出后的文件打开,正常了,就是效果,呵呵了,不忍直视的方块字!

行吧,我还是老老实实的把内容粘到本地,用 marked 导出吧。文档排版和字体效果好多了!

一顿操作~

安装 wkhtmltopdf

查看是否安装 wkhtmltopdf,可以 whereis wkhtmltopdfapt search wkhtmltopdf 查看

ubuntu 中使用 apt 安装后,路径一般是 /usr/bin/wkhtmltopdf

更新 leanote 的 markdown 解析器更新 md2html.js

  1. leanote 安装目录下 public/libs/md2html 这个目录中
  2. 将原 md2html.js 备份
  3. 然后从 leanote 中下载新版的 md2html.js
cd "你的 leanote 安装目录/public/libs/md2html"
mv md2html.js md2html.js.old
wget http://leanote.com/public/libs/md2html/md2html.js

参考

赞赏