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 字符串中的字符倒转
Sep 06 Python
python opencv检测目标颜色的实例讲解
Apr 02 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
pycharm 实现显示project 选项卡的方法
Jan 17 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
Sep 20 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
TensorFlow实现自定义Op方式
Feb 04 Python
使用Django清空数据库并重新生成
Apr 03 Python
Django之全局使用request.user.username的实例详解
May 14 Python
用Python进行websocket接口测试
Oct 16 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
PHP实现Google plus的好友拖拽分组效果
2016/10/21 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
用JQUERY增删元素的代码
2012/02/14 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Python编程之string相关操作实例详解
2017/07/22 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
size?爱尔兰官方网站:英国伦敦的球鞋精品店
2019/03/31 全球购物
《数星星的孩子》教学反思
2014/04/11 职场文书
期末评语大全
2014/05/04 职场文书
医院志愿者活动总结
2015/05/06 职场文书
背起爸爸上学观后感
2015/06/08 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python