当前位置: 首页 > 工具软件 > PyMuPDF > 使用案例 >

基于pymupdf的PDF与图片互转

邵繁
2023-12-01

安装pymupdf

pip install pymupdf

PDF转为图片

def pdf2pic(pdf_file):
    doc = fitz.open(pdf_file)
    pdf_name = os.path.splitext(pdf_file)[0]
    for pg in range(doc.pageCount):
        page = doc[pg]
        rotate = int(0)
        # 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
        zoom_x = 1.0
        zoom_y = 1.0
        trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
        pm = page.getPixmap(matrix=trans, alpha=False)
        pm.writePNG('img/%s.png' % page)

图片转PDF

def pic2pdf(source_folder):
    doc = fitz.open()
    try:
        print(source_folder)
        source_folder = source_folder + "*" if source_folder.endswith("\\") else source_folder + "\\*"
        for img in sorted(glob.glob(source_folder),key=lambda x:int(str(x).split(" ")[1])):  # 读取图片,确保按文件名排序
            print(img)
            imgdoc = fitz.open(img)  # 打开图片
            pdfbytes = imgdoc.convertToPDF()  # 使用图片创建单页的 PDF
            imgpdf = fitz.open("pdf", pdfbytes)
            doc.insertPDF(imgpdf)  # 将当前页插入文档
        doc.save("target.pdf")  # 保存pdf文件
    except:
        print("目录:[ %s ] 转换pdf异常" % source_folder)
    finally:
        doc.close()
 类似资料: