环境:
PyMuPDF-1.18.13
pip3 install fitz
pip3 install PyMuPDF
pip3 install pikepdf
1.根据文件路径
#!/user/bin/env python3
# -*- coding: utf-8 -*-
import base64
import fitz # 若缺少fitz则可以通过pip install fitz来下载该库
def pdf_convert_base64(pdf_path):
pdf = fitz.Document(pdf_path)
base64_file_list = []
for pg in range(pdf.pageCount):
page = pdf[pg] # 获得每一页的对象
trans = fitz.Matrix(1.23, 1.23).preRotate(0) # 可以通过fitz.Matrix中的参数来调整图片大小
pm = page.getPixmap(matrix=trans, alpha=False).getPNGData() # 获得每一页的流对象
base64_data = base64.b64encode(pm) # 使用base64进行加密
base64_file_list.append("data:image/png;base64," + str(base64_data, encoding='utf8'))
pdf.close()
return base64_file_list
2.根据图片URL
def pdf_convert_base64(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}
# 发送get请求图片url
r = requests.get(url, headers=headers)
pdf = fitz.Document(stream=r.content, filetype="pdf")
base64_file_list = []
for pg in range(pdf.pageCount):
page = pdf[pg] # 获得每一页的对象
trans = fitz.Matrix(1.23, 1.23).preRotate(0) # 可以通过fitz.Matrix中的参数来调整图片大小
pm = page.getPixmap(matrix=trans, alpha=False).getPNGData() # 获得每一页的流对象
base64_data = base64.b64encode(pm) # 使用base64进行加密
base64_file_list.append("data:image/png;base64," + str(base64_data, encoding='utf8'))
pdf.close()
return base64_file_list