最近有需求将pdf 转成image ,很多软件都要钱。。于是网上搜下有没有可用的代码处理。找到了:
参考了 https://www.thepythoncode.com/article/convert-pdf-files-to-images-in-python
但是因为那个库 函数有更新了,所以运行错误了,我重新改了下:
安装就不用说了
本地有python3
安装包:
brew install swig
python -m pip install --upgrade pymupdf
建立一个python文件:
import fitz
from typing import Tuple
import os
def dbg(msg):
print(msg)
def convert_pdf2img(input_file:str, pages:Tuple=None):
pdfIn = fitz.open(input_file)
dbg(pdfIn);
output_files = []
for pg in range(pdfIn.page_count):
if str(pages)!=str(None):
if str(pg) not in str(pages):
continue
page = pdfIn[pg]
rotate = int(0)
zoom_x = 2
zoom_y = 2
mat = fitz.Matrix(zoom_x,zoom_y).prerotate(rotate)
pix = page.get_pixmap(matrix=mat, alpha=False)
output_file = f"{os.path.splitext(os.path.basename(input_file))[0]}_page{pg+1}.png"
pix.save(output_file)
output_files.append(output_file)
pdfIn.close()
summary = {
"File": input_file, "Pages": str(pages), "Output File(s)": str(output_files)
}
# Printing Summary
print("## Summary ########################################################")
print("\n".join("{}:{}".format(i, j) for i, j in summary.items()))
print("###################################################################")
return output_files
if __name__ == "__main__":
import sys
input_file = sys.argv[1]
convert_pdf2img(input_file)
~
运行 当前pdf文件
然后就ok了
python pdfimage.py needtoconvert.pdf