在网上看到某技术产品的文档,想把文档弄下来在电子书阅读器上离线看,可发现这个技术文档没有提供pdf等电子书格式,于是想办法自己做一个,这里记录一下。

首先将文档全下载下来

wget -k --recursive --no-parent https://rook.github.io/docs/rook/v0.9/

然后写个脚本将所有html文件都转成pdf

$ wget -k --recursive --no-parent https://rook.github.io/docs/rook/v0.9/
$ cd rook.github.io/docs/rook/
$ mkdir pdfs
$ cat convert2pdf.sh

# names of files (without extension)
files=$(ls -1 v0.9 | sed -e 's/\.html$//')
# convert files
for file in $files
do
	echo "converting ${file}.html to ${file}.pdf"
	wkhtmltopdf -p socks5://127.0.0.1:1086  --javascript-delay 1000 v0.9/${file}.html pdfs/${file}.pdf
done

$ bash ./convert2pdf.sh

注意由于这些html文件引用了外部css/js,必须设置代理才能下载回来。另外文档里用到了google字体,得设置一会儿延迟,生成的pdf中字体才比较正常。

最后用常用的pdf编辑工具(如PDF Export)将这些pdf合并成一个pdf,可以参考这里