基于wkhtmltopdf html页面转pdf

基于wkhtmltopdf html页面转pdf


  • wkhtmltopdf
  • pdfkit

1、wkhtmltopdf安装

选择下图所示的版本进行下载安装
安装完成后添加到系统环境变量中
基于wkhtmltopdf html页面转pdf

  • linux平台

下载好linux rpm包后

yum localinstall wkhtmltox-0.13.0-alpha-7b36694_linux-centos7-amd64.rpm

安装后会自动加入到环境变量中

wkhtmltox-0.13.0-alpha版本在增加–heaswe-html参数会报错,处理方式如下:
更换版本为wkhtmltox-0.12.5 stable版本可以解决,

2、使用python进行转换

  • 安装pdfkit模块

pip install pdfkit

  • 使用方法
# coding:utf-8
import pdfkit
# 配置输出的pdf属性,详情见官网
options = {
# 加入一个html文件作为页眉,其实想生成一个水印
"header-html": "pdf_header.html",
 "page-size":"A4",
 "margin-bottom":"10mm",
  "margin-top":"10mm"
 }
# 根据html字符生成pdf,也可以根据html文件生成、以及url生成
pdfkit.from_string(mail_msg, "report.pdf", options=options)

linux平台方法

个人使用上述方法在linux环境跑,结果失败了,找了很久才发现,上述方法只支持图形化界面,但是一般linux是没有装图形化界面相关软件的

  • 解决方案

cmd="export DISPLAY=:0.0;wkhtmltopdf --page-size A4 --margin-bottom 25.4mm --margin-top 25.4mm --user-style-sheet pdf.css --header-html header.h

使用命令行来run,开始给它分配一个虚拟图形化界面,这个自行百度,后面接着wkhtmltopdf命令,听过shell的一个方法执行命令,即可得到