基于wkhtmltopdf html页面转pdf
基于wkhtmltopdf html页面转pdf
- wkhtmltopdf
- pdfkit
1、wkhtmltopdf安装
- 下载地址:https://wkhtmltopdf.org/downloads.html
- windows平台
选择下图所示的版本进行下载安装
安装完成后添加到系统环境变量中
- 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的一个方法执行命令,即可得到