PyMuPDF的版本不同,似乎方法也不同,所以建议指定一个版本。
安装:
shpip install PyMuPDF==1.21.1
代码:
pythonimport os
import fitz
# 提取每一页的图片对象单独保存
def muExtractImages(pdf_name, pic_save_path):
doc = fitz.open(pdf_name)
for itm,page in enumerate(doc):
try:
tupleImage = page.get_images()
for xref0 in tupleImage: # 取第一个元组
xref = xref0[0] # 最终取得xref ok
img = doc.extract_image(xref) # 获取文件扩展名,图片内容 等信息
imageFilename = os.path.join(pic_save_path, str(itm) + '_' + str(xref) + '.' + img['ext'])
imgout = open(imageFilename, 'wb') # byte方式新建图片
imgout.write(img["image"]) # 当前提取的图片写入磁盘
imgout.close()
except:
continue
doc.close()
# 将每一页作为图片,保存到某个目录
def pdf_image(pdf_name, pic_save_path):
img_paths = []
doc = fitz.open(pdf_name)
for i, pg in enumerate(doc.pages()):
page = pg # 获得每一页的对象
trans = fitz.Matrix(3.0, 3.0)
pm = page.get_pixmap(matrix=trans, alpha=False) # 获得每一页的流对象
img_path = str(i + 1) + '.jpg'
img_path = os.path.join(pic_save_path, img_path)
pm.save(img_path)
img_paths.append(img_path)
doc.close()
return img_paths
if __name__ == '__main__':
file_path = r'F:\BaiduNetdiskDownload\语文-状元笔记\语文-状元笔记\1.pdf' # pdf_name 文件路径
dir_path = r'F:\BaiduNetdiskDownload\语文-状元笔记\语文-状元笔记\1' # 存放图片的文件夹
muExtractImages(file_path, dir_path)
PyMuPDF是一个用于操作PDF文件的Python库。它是基于MuPDF库的Python绑定,提供了一组高级功能,可以用于读取,修改和写入PDF文件。
主要特性:
支持多种PDF版本,包括PDF 1.7(Acrobat 8.0)
支持读取加密和签名的PDF文件
支持修改PDF文件的内容,包括文本,图像,链接和表单
支持创建新的PDF文件或合并现有的PDF文件
支持渲染PDF页面为图像,包括多种格式(如PNG,JPEG,TIFF)
支持对PDF文件进行搜索和提取文本
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!