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

posted @ 2022-08-04 10:55  红雨520  阅读(589)  评论(0编辑  收藏  举报