项目需求要将页面生成pdf,然后把每页切分成图片...本想着这事轻车熟路挺简单的,而且网上很多相关博客。
话不多说直接干!咔咔咔,一顿操作页面生成了,但是有个大坑,整个页面所有内容都是ajax加载数据渲染的并且存在echarts图表。
经历自己熟悉的方法和各种博客上记录方法失败后,各种检索无果后,只能另辟蹊径了。(建议:还是先采用正常套路来生成pdf,实在没办法,这个方法可以做一个参考)。
需要使用的模块:selenium、pdfkit、pdf2image、pillow、wkhtmltopdf
需要使用的工具:wkhtmltox、poppler、chromedriver(工具需要下载安装,具体怎么下载安装请百度)
简单介绍下思路:
1、采用selenium请求页面,等待页面全部加载完成,定位到的echarts图表进行截图,然后将该区域内容替换成截图;
2、替换完成后,获取页面全部内容,写入到html文件;
3、采用pdfkit将刚刚的html文件转成pdf(这时间需要配置允许加载本地文件);
4、采用pdf2image将pdf文件按页切分为图片
下面直接上干货:
import os
import shutil
import time
from os.path import split
import pdfkit
from pdf2image import convert_from_path
from DaXing import settings
from PIL import Image
from selenium import