- 积分
- 3638
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有时候我会从淘宝买、或下载一些pdf,
例如附件的《云彩收集者手册》或NASA的杂志《earth_book_2019_tagged》,
上面的图很好看,我想批量存下来,这时就需要python的pymupdf模块了
代码:
# -*- coding: utf-8 -*-
"""
从pdf文件提取图片
安装包:pip install pymupdf
脚本和pdf文件放在同一级目录,程序会生成子文件夹<图片>,
提取的图片按“p+页码n+该页第m个图”的形式命名,
例如第9页的第2张图:p9-2.png
"""
import fitz,sys,os
path=os.path.dirname(sys.argv[0])
os.chdir(path)
imgFold=path+'\\图片'
if not os.path.isdir(imgFold):
os.makedirs(imgFold)
pdfFile='earth_book_2019_tagged.pdf'
doc=fitz.open(pdfFile)
pageNum=len(doc)#文件页数
print('文件页数=',pageNum)
for i in range(pageNum):
imglist = doc.getPageImageList(i)
for j, img in enumerate(imglist):
xref = img[0]
pix = fitz.Pixmap(doc, xref) # make pixmap from image
if pix.n - pix.alpha < 4: # can be saved as PNG
pix.writePNG(imgFold+"\\p%s-%s.png" % (i+1, j+1))
else: # CMYK: must convert first
pix0 = fitz.Pixmap(fitz.csRGB, pix)
pix0.writePNG(imgFold+"\\p%s-%s.png" % (i+1, j+1))
pix0 = None # free Pixmap resources
pix = None # free Pixmap resources
|
|