微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
您好, 登录| 注册|

python实现pdf转image

  • 03-21 14:00
  • 米修儿

    LV.0
  • 1317

    浏览

  • 5

    回复

  • 2

    获赞

  • 前段时间折腾了很久终于把image和文字做成pdf并保存成功了(其实就是一个简单的报表功能),但是在qml下想显示pdf一直也没成功,网上说用poppler库,我尝试了很久,虽然编译成功,但是不知道咋用,所以最后就选个折中的办法,先把pdf转成图片,然后再去qml中显示pdf转成的图片。

    下面说说实现过程:

    实现环境:Ubuntu20.04

    实现语言:python3.8.10

    实现需要的库:fitz   # fitz就是pip install PyMuPDF

    def pyMuPDF_fitz(pdfPath, imagePath):
        startTime_pdf2img = datetime.datetime.now()  # 开始时间
    
        print("imagePath=" + imagePath)
        pdfDoc = fitz.open(pdfPath)
        for pg in range(pdfDoc.pageCount):
            page = pdfDoc[pg]
            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.getPixmap(matrix=mat, alpha=False)
    
            if not os.path.exists(imagePath):  # 判断存放图片的文件夹是否存在
                os.makedirs(imagePath)  # 若图片文件夹不存在就创建
    
            pix.writePNG(imagePath + '/' + 'images_%s.png?x-oss-process=image/auto-orient,1/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzYw,t_20' % pg)  # 将图片写入指定的文件夹内
    
        endTime_pdf2img = datetime.datetime.now()  # 结束时间
        print('pdf2img时间=', (endTime_pdf2img - startTime_pdf2img).seconds)

    这个是我感觉目前安装的库最少,实现起来最方便的实现方法,小伙伴们有更好的方法和途径,欢迎评论

    同是电子工程师,请一定不要吝啬你的赞!

    2人已赞

    编辑 举报

    LV.1

    4265160

    2514748

    23

    821817

    说说你的看法

  • LV.

    @

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    取消
    发送
  • 现在还没有回复呢,说说你的想法

    现在还没有回复呢,说说你的想法

    全部回复(5)

  • 米修儿

    LV.1

    03-21 14:46

    @

    pix.writePNG(imagePath + '/' + 'images_%s.png?x-oss-process=image/auto-orient,1/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzYw,t_20' % pg)  # 将图片写入指定的文件夹内

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4265161

    2514748

    23

    821817

    取消
    发送
    2
  • dy-lgC7wxPW

    LV.1

    03-25 11:26

    @

    源码有吗

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4265235

    2514748

    23

    875274

    取消
    发送
    3
  • 米修儿

    LV.1

    04-22 11:17

    @dy-lgC7wxPW

    源码有吗

    这个就是源码,只是pix.writePNG这个函数在论坛发帖会自动后面加一长串的字符,应该是这样

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4281637

    2514748

    23

    821817

    取消
    发送
    4
  • lihui710884923

    LV.1

    04-22 11:18

    @

    python是真的强大,有很多转的库,但这个最省事

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4281638

    2514748

    23

    597597

    取消
    发送
    5
  • lihui710884923

    LV.1

    04-22 11:19

    @

    尝试了,非常好用,多谢

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4281639

    2514748

    23

    597597

    取消
    发送
    6
  • 现在还没有回复呢,说说你的想法

  • 回复

  • 收藏

  • 点赞

  • 举报有害信息

  • 已超出发布时间24小时,无法编辑与删除
    关于我们 联系方法 广告服务 会议服务 电子星球APP 网站地图 不良信息举报 热线:400-003-2006
    © 2002-2021 Netbroad(网博互动)公司版权所有 津ICP备:11006234号 联网备案号:12010402000747 增值电信业务经营许可证:津B2-20120058