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实现实例
Apr 26 Python
Python pickle类库介绍(对象序列化和反序列化)
Nov 21 Python
Python读取环境变量的方法和自定义类分享
Nov 22 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
Jan 20 Python
Python selenium 三种等待方式详解(必会)
Sep 15 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
python编写微信远程控制电脑的程序
Jan 05 Python
selenium获取当前页面的url、源码、title的方法
Jun 12 Python
对python 调用类属性的方法详解
Jul 02 Python
简单了解python代码优化小技巧
Jul 08 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
只用40行Python代码就能写出pdf转word小工具
May 31 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学习笔记 用户注册模块用户类以及验证码类
2011/09/20 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
PHP修改session_id示例代码
2014/01/08 PHP
PHP通过API获取手机号码归属地
2015/05/28 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
PHP设计模式之命令模式示例详解
2020/12/20 PHP
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
JS匀速运动演示示例代码
2013/11/26 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
2020/06/18 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
后勤部长岗位职责
2013/12/14 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
小学师德师风整改措施
2014/10/27 职场文书
民主评议党员个人总结
2015/02/13 职场文书
高中物理教学反思
2016/02/19 职场文书
2017年寒假社区服务活动总结
2016/04/06 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
Python中requests库的用法详解
2022/06/05 Python
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL