找回密码
 立即注册
搜索
热搜: Excel discuz
查看: 1624|回复: 0

[项目代码] PDF转图片--批量转换

[复制链接]

482

主题

7万

元宝

75万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
750848
发表于 2021-12-1 20:09:24 | 显示全部楼层 |阅读模式
  1. import fitz
  2. import os
  3. name = []
  4. path = []
  5. i = 1
  6. url = r'F:\41-45\42-45\42'   #定义存放PDF文件的路径

  7. #在路径内搜索PDF文件,并加入列表,生成字典,键值对分别是文件名和文件路径
  8. for lujing,liebiao,wenjian in os.walk(url):
  9.     for a in wenjian:
  10.         if a.endswith('pdf'):
  11.             patha = lujing +'\\' +a
  12.             path.append(patha)
  13.             name.append(a)
  14.             zidian = dict(zip(name,path))

  15. #在字典内拿到文件名创建文件夹,然后转图片放到对应文件夹
  16. for name,path in zidian.items():
  17.     lujing = path
  18.     lujing=lujing.replace('.pdf','')
  19.     if not os.path.exists(lujing):
  20.         os.mkdir(lujing)
  21.     print(name)
  22.     # print(path)
  23.     url = path

  24.     #  打开PDF文件,生成一个对象
  25.     doc = fitz.open(url)
  26.     print(f'一共{doc.pageCount}页')
  27.     pdf_name = os.path.splitext(url)[0]
  28.     for pg in range(doc.pageCount):
  29.         page = doc[pg]
  30.         rotate = int(0)
  31.         # 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
  32.         zoom_x = 4.0
  33.         zoom_y = 4.0
  34.         trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
  35.         pm = page.getPixmap(matrix=trans, alpha=False)
  36.         pm.writePNG(lujing +'\\'+ f'{i}.png')
  37.         i = i+1
  38.         print(f'第{i}页转换完成')
  39.     i = 1
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五花八门论坛 ( 豫ICP备15031300号-3 )

GMT+8, 2024-4-20 18:14 , Processed in 0.086817 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表