Python使用到第三方库PyMuPDF图片与pdf相互转换


Posted in Python onMay 03, 2019

使用 Python 进行图片和pdf之间的相互转换

使用到第三方库 PyMuPDF 在 python 环境下对 PDF 文件的操作。

PDF 转为图片

需新建文件夹 pdf2png

import fitz
import glob

def rightinput(desc):
  flag=True
  while(flag):
    instr = input(desc)
    try:
      intnum = eval(instr)
      if type(intnum)==int:
        flag = False
    except:
      print('请输入正整数!')
      pass
  return intnum

pdffile = glob.glob("*.pdf")[0]
doc = fitz.open(pdffile)

flag = rightinput("输入:1:全部页面;2:选择页面\t")
if flag == 1:
  strat = 0
  totaling = doc.pageCount
else:
  strat = rightinput('输入起始页面:') - 1
  totaling = rightinput('输入结束页面:')

for pg in range(strat, totaling):
  page = doc[pg]
  zoom = int(100)
  rotate = int(0)
  trans = fitz.Matrix(zoom / 100.0, zoom / 100.0).preRotate(rotate)
  pm = page.getPixmap(matrix=trans, alpha=False)
  pm.writePNG('pdf2png/%s.png' % str(pg+1))

图片合并为 PDF 文件

将所需合并的图片放置与文件夹 pic2pdf 中。

import glob
import fitz
import os

def pic2pdf():
  doc = fitz.open()
  for img in sorted(glob.glob("pic2pdf/*")): # 读取图片,确保按文件名排序
    print(img)
    imgdoc = fitz.open(img)         # 打开图片
    pdfbytes = imgdoc.convertToPDF()    # 使用图片创建单页的 PDF
    imgpdf = fitz.open("pdf", pdfbytes)
    doc.insertPDF(imgpdf)          # 将当前页插入文档
  if os.path.exists("allimages.pdf"):
    os.remove("allimages.pdf")
  doc.save("allimages.pdf")          # 保存pdf文件
  doc.close()

if __name__ == '__main__':
  pic2pdf()

好了今天为大家介绍的比较简单,希望大家能明天

Python 相关文章推荐
Python使用metaclass实现Singleton模式的方法
May 05 Python
python实现图片处理和特征提取详解
Nov 13 Python
python实现聊天小程序
Mar 13 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
python模块之subprocess模块级方法的使用
Mar 26 Python
python学习开发mock接口
Apr 28 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
python实现输出一个序列的所有子序列示例
Nov 18 Python
python 解决cv2绘制中文乱码问题
Dec 23 Python
Python selenium抓取虎牙短视频代码实例
Mar 02 Python
几款好用的python工具库(小结)
Oct 20 Python
Python卷积神经网络图片分类框架详解分析
Nov 07 Python
利用python将图片版PDF转文字版PDF
May 03 #Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 #Python
Python Flask框架模板操作实例分析
May 03 #Python
Python Flask框架扩展操作示例
May 03 #Python
Python安装Flask环境及简单应用示例
May 03 #Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 #Python
Python3模拟curl发送post请求操作示例
May 03 #Python
You might like
php实现ping
2006/10/09 PHP
推荐文章系统(一)
2006/10/09 PHP
php导出生成word的方法
2015/12/25 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
注意!PHP 7中不要做的10件事
2016/09/18 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
Python单例模式实例分析
2015/01/14 Python
Python进程通信之匿名管道实例讲解
2015/04/11 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
python yield和Generator函数用法详解
2020/02/10 Python
python高级特性简介
2020/08/13 Python
详解Python 中的容器 collections
2020/08/17 Python
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
初级会计求职信范文
2014/02/15 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
闪闪的红星观后感
2015/06/08 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
Android Rxjava3 使用场景详解
2022/04/07 Java/Android