python how to convert pdf to image

最近有需求将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

你可能感兴趣的:(python学习,python,开发语言)