Office pdf转图片jpg 与 png
Linux工具
Libreoffice
安装方式,参照office转pdf。
libreoffice7.3 --headless --convert-to jpg /xxx.pdf
libreoffice7.3 --headless --convert-to jpg /xxx.docx
libreoffice7.3 --headless --convert-to jpg /xxx.pptx
libreoffice7.3 --headless --convert-to jpg /xxx.xlsx
注意事项:
生成的是文档第一页的图。
部分格式的office,存在不兼容的情况,转成的图片内容为xml的源格式。
pdftoppm
安装方式(不同系统,命令有所不同):
yum install poppler-utils
使用方式:
pdftoppm -png xxx.pdf 图片名
pdftoppm -jpeg xxx.pdf 图片名
pdftoppm -jpg -f 1 -l 1 0001.pdf 001
注意事项:
支持生成png与jpg格式的图片,不过目前测试结果大小区别不大。
可指定从多少页到多少页生成图片,每一页一个图片。
只支持pdf格式文件,不支持office的格式。
python代码
PyMuPDF
这个库,可以获取pdf文件的每一页数据,自行选择转换的页数和保存的文件名称。python3.10的代码,和网上的方法名存在一些不同,是因为版本的不同,这个库可以在Linux平台使用。
# -*- coding:utf-8 -*-
import fitz
# 直接保存,速度快,不过清晰度或许不好
path = r'xxx.pdf'
name = path[:path.rfind('.')]
pdf = fitz.open(path)
page = pdf[0]
rotate = int(0)
# 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。
# 此处若是不做设置,默认图片大小为:792X612, dpi=96
zoom_x = 1.33333333 # (1.33333333-->1056x816) (2-->1584x1224)
zoom_y = 1.33333333
mat = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate)
pix = page.get_pixmap(matrix=mat, alpha=False)
pix._writeIMG(f'{name}.png', 1)
win32com
win32com库,可以支持office转pdf,使用简单,但是环境只能是Win+Office环境。
具体实现可以参考:https://www.cnblogs.com/lolipop2019/p/14227331.html
作者:红雨
出处:https://www.cnblogs.com/52why
微信公众号: 红雨python