如何将Pdf文件转化成PNG图像?

在青少年编程竞赛交流群中,我每周日晚20:00都会开展直播活动,带着小朋友们学习编程。

之后,我也会把每周要求小朋友做的题目以图文的形式发放出来,方便小朋友们复习。比如:Scratch等级考试(二级)模拟题

其中,有一个环节就是把PDF文档转成PNG图像。然后,上传到微信公众号后台。

今天,我向大家介绍一下,自己是如何使用PyMuPDF库来完成这些操作的。

官方文档:

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

PyPI 源:

https://pypi.org/project/PyMuPDF/

PyMuPDF 安装:

pip install PyMuPDF

安装完成之后:

Name: PyMuPDF
Version: 1.18.14
Summary: PyMuPDF is a Python binding for the document renderer and toolkit MuPDF

Home-page: https://github.com/pymupdf/PyMuPDF
Author: Jorj McKie
Author-email: jorj.x.mckie@outlook.de
License: GNU AFFERO GPL 3.0
Location: c:\programdata\anaconda3\lib\site-packages
Requires:
Required-by:
(base) PS D:\Users\Administrator>

PyMuPDF包的导入

import fitz

注意:这块跟我们其它包不太一样,通常情况下包的名称跟pip install 后的名称一致,但这个包导入的是fitz

完整代码如下:

import fitz
import os
from datetime import datetime

def PDF_To_PNG(pdfPath, imagePath):
    startTime = datetime.now()  # 开始时间

if not os.path.exists(imagePath):
        os.makedirs(imagePath)
    print('ImagePath:' + imagePath)

pdfDoc = fitz.Document(pdfPath)  # 打开文件
    for pg in range(pdfDoc.page_count):  # 遍历所有页面
        page = pdfDoc[pg]
        rotate = int(0)  # 页面旋转角度
        # 此处若是不做设置,默认图片大小为:792X612, dpi=96
        zoom_x = 1.0 # 设置图片相对于PDF文件在X轴上的缩放比例
        zoom_y = 1.0 # 设置图片相对于PDF文件在Y轴上的缩放比例
        mat = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate)
        pix = page.getPixmap(matrix=mat, alpha=False) 
        pix.writePNG(imagePath + '/' + 'images_%s.png' % pg)
        
    endTime = datetime.now()
    print('pdf2png Time:', (endTime - startTime).seconds)

if __name__ == '__main__':
    pdfPath = './Scratch二级20210613.pdf'
    imagePath = './提取结果'
    PDF_To_PNG(pdfPath, imagePath)

得到结果如下:


(0)

相关推荐

  • 别再问如何用 Python 提取 PDF 内容了

    导读 大家好,在之前的办公自动化系列文章中我们已经详细介绍了如何使用Python批量处理PDF文件,包括合并.拆分.水印. 今天我们再次回到PDF,详细讲解如何使用Python从PDF提取指定的信息. ...

  • 再见PDF提取收费!我用100行Python代码搞定!

    第471篇原创干货,第一时间送达 大家在日常的工作和学习过程中,都少不了与PDF文件打交道,很多的小伙伴都面临着将PDF文件中的文字.图片和表格数据提取出来的问题.能够对PDF文件中的文字.表格等数据 ...

  • PDF导出为图片并生成WORD

    大家好,我消失了太久,不知道大家还记不记得我.前段时间有人提了个很奇怪的要求:他们要投标,投标方需要word形式的标书,标书内又要有公司内部几百号人的从业证书,现在标书写好了,每个人自己的从业证书各自 ...

  • GUI实战|Python做一个文档图片提取软件

    作者丨GUI工作组 来源丨经授权转自 早起Python(ID:Zaoqi_Python) 本文将进一步讲解如何用Python提取PDF与Word中图片,并结合之前讲解过的GUI框架PysimpleGU ...

  • 【PDF Candy Desktop】这款PDF工具箱功能丰富,可以将PDF转换成其它格式如:Word、JPG、PNG等

    昨天,我的一位友人在朋友圈里发:谁会PS,救急!我本着人道主义精神主动私聊了他.然后他给我发了一份PDF文件.我说:你不是要我P图的吗?然后他流露出惊愕的语言,原来他对这方面了解不多. 我索性一想,P ...

  • python‘导入fitz模块不成功’的解决办法

    看到一个程序需要导入fitz模块,尝试pip install fitz来安装fitz,结果fitz安装不上 import fitz 解决方法: pip install PyMuPDF,这样就安装了Py ...

  • 在Adobe Acrobat Pro调整PDF页面大小(使得页面一样大)

    请不要使用"印刷制作"--"设置页边框"这个方法,因为很有可能会出现特定页面比例不能修改的情况,而且好像只能改大, 不能改小,总之不是一个好方法1.点击&quo ...

  • pdf文件需要修改错误内容,pdf怎么转换成word?

    不知道大家有没有遇到这种情况,就是当我们整理好一个pdf格式的文件准备发送给领导或者是同事之类的操作时,临时检查的时候发现文件中有错误的地方,天呐!这对于小编来说虽说是习以为常,但是每每遇到此情况的时 ...

  • pdf文件太大如何变小?

    这生活工作学习中遇到的麻烦事儿可真是不少,就像我们在整理完成一个pdf格式的文件资料后,准备完成最后一步发给领导查阅,但是发现文件太大发送不了!这虽说不是什么大问题,但是成年人的崩溃往往就在一瞬间(手 ...

  • 菜鸟记591-多个工作表工作簿不能转为1个PDF文件?是不是忘了点开选项?

    万一您身边的朋友用得着呢? 各位朋友早上好,小菜继续和您分享经验之谈,截止今日小菜已分享500+篇经验之谈,可以文章编号或关键词进行搜索. 微信推送规则发生改变,如果您想看到小菜每个工作日的经验之谈, ...

  • PDF文件搜索工具PDF Search for Mac

    PDF Search for Mac是Mac平台上一款专业的PDF文件搜索工具,PDF Search Mac版能够帮助用户快速在PDF文档中搜索有需要的指定文本或者内容.有了PDF Search Ma ...

  • 文件太大影响传输速度,pdf文件过大如何缩小?

    PDF文件过大怎么压缩?PDF是我们工作和学习中常用的文件,但是有些PDF文件内容很多体积很大,打开以及传输都会比较麻烦.有些邮箱或者通讯工具,对传输的文件会有容量的限制,这种时候我们就不得不对文件进 ...

  • pdf文件里有一页多余的内容,如何删除其中一页?

    这pdf的文件是有很多使用优点,当大家想要传输某些文件资料,或者是打印查阅的话很多人都会选择用PDF格式的文件!但是有个问题就是它也有缺点啊,缺点就是难更改,难编辑.就比如我们pdf文件其中有一页是多 ...

  • mac网页转换pdf教程,在Mac系统中如何将html网页转成PDF文件?

    Mac系统中怎么将html网页转成PDF格式?mac系统中把网页格式的文件想转换成pdf格式的文件,方便打印,该怎么转换呢?下面我们就来看看详细的教程,需要的朋友可以参考下. 用途:把网页html转成 ...

  • 保存在电脑的pdf文件怎么转换成word?

    Pdf格式的文件在工作中运用的地方是非常的广的,因为它的优点有很多.像PDF可防止他人无意中触到键盘修改文件内容:它不会产生格式错乱的情况,所占用的内存空间将会减少,更便于传输:用户浏览页面更加方便, ...

  • 多张图片合成一个pdf文件,怎么把图片变成pdf?

    文件格式之间的转换操作是有非常多的,像word转ppt,word转pdf,ppt转pdf等等,文件格式转换是非常多的.而图片转pdf这种操作也是经常需要的!就好比当我们从网上下载一些图片资料的时候,这 ...