zoukankan      html  css  js  c++  java
  • PyMuPDF库(处理PDF)

    昨天在公司需要把一份PDF格式认证表转换为图片JPEG格式,所以在网上查询了一些与此相关的python库,最后看网上大多都是使用Wand和PyMuPDF,在安装了Wand库后,导入相应的模块后报错了,好像要安装什么依赖项,最后选择了PyMuPDF,下载库文件就可以直接用。

    1、下载PyMuPDF库文件

    pip install PyMuPDF

    2、源文件贴上

    import os
    import fitz  # 导入的是fitz
    
    
    if __name__ == '__main__':
        base_path = input("请输入要转换的文件路径:")  # 输入要转换的PDF所在的文件夹
        filenames = os.listdir(base_path)      # 获取PDF文件列表
        for filename in filenames:
            full_path = os.path.join(base_path, filename)  # 拼接,得到PDF文件的绝对路径
            print(full_path)
            doc = fitz.open(full_path)  # 打开一个PDF文件,doc为Document类型,是一个包含每一页PDF文件的列表
            rotate = int(0)  # 设置图片的旋转角度
            zoom_x = 2.0  # 设置图片相对于PDF文件在X轴上的缩放比例
            zoom_y = 2.0  # 设置图片相对于PDF文件在Y轴上的缩放比例
            trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
            print("%s开始转换..." % filename)
            if doc.pageCount > 1:  # 获取PDF的页数
                for pg in range(doc.pageCount):
                    page = doc[pg]  # 获得第pg页
                    pm = page.getPixmap(matrix=trans, alpha=False)  # 将其转化为光栅文件(位数)
                    new_full_name = full_path.split(".")[0]  # 保证输出的文件名不变
                    pm.writeImage("%s%s.jpg" % (new_full_name, pg))  # 将其输入为相应的图片格式,可以为位图,也可以为矢量图
           # 我本来想输出为jpg文件,但是在网页中都是png格式(即调用writePNG),再转换成别的图像文件前,最好查一下是否支持
    else: page = doc[0] pm = page.getPixmap(matrix=trans, alpha=False) new_full_name = full_path.split(".")[0] pm.writeImage("%s.jpg" % new_full_name) print("%s转换完成!" % filename)

    3、PyMuPDF文档

    https://pymupdf.readthedocs.io/en/latest/

  • 相关阅读:
    菜鸟也为Git疯狂
    C#实现简单的栈和队列
    Entity Framework模型在领域驱动设计界定上下文中的应用
    SQL 关于使用CTE
    《高效程序员的45个习惯》读书笔记
    开源.NET下的XML数据库介绍及入门
    openkm开发环境搭建过程
    ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇
    《Clean Code》Learning
    网络抓包工具 Network Monitor使用方法 Fiddler使用方法
  • 原文地址:https://www.cnblogs.com/loveprogramme/p/11247037.html
Copyright © 2011-2022 走看看