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 str与repr的区别
Mar 23 Python
python中stdout输出不缓存的设置方法
May 29 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
Jun 16 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
详解Python中最难理解的点-装饰器
Apr 03 Python
python操作文件的参数整理
Jun 11 Python
Python变量访问权限控制详解
Jun 29 Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 Python
python中可以声明变量类型吗
Jun 18 Python
如何使用Python调整图像大小
Sep 26 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 20 Python
Python实现文字pdf转换图片pdf效果
Apr 03 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应用提速面面观
2006/10/09 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
慎用 somefunction.prototype 分析
2009/06/02 Javascript
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
jQuery遍历Form示例代码
2013/09/03 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
JavaScript字符串对象
2017/01/14 Javascript
jquery实现数字输入框
2017/02/22 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
2019/06/17 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
django和flask哪个值得研究学习
2020/07/31 Python
Html5无刷新修改browser Url的方法
2014/01/15 HTML / CSS
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
中药专业自荐信范文
2014/03/18 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
创先争优个人总结
2015/03/04 职场文书
旅游安全责任协议书
2016/03/22 职场文书
PHP实现两种排课方式
2021/06/26 PHP