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算法之求n个节点不同二叉树个数
Oct 27 Python
numpy 进行数组拼接,分别在行和列上合并的实例
May 08 Python
Python Opencv实现图像轮廓识别功能
Mar 23 Python
Python Matplotlib 基于networkx画关系网络图
Jul 10 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
超实用的 30 段 Python 案例
Oct 10 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
pycharm实现在子类中添加一个父类没有的属性
Mar 12 Python
Python列表去重复项的N种方法(实例代码)
May 12 Python
python tkinter实现连连看游戏
Nov 16 Python
Python的logging模块基本用法
Dec 24 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 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 操作文件的一些FAQ总结
2009/02/12 PHP
解析php dirname()与__FILE__常量的应用
2013/06/24 PHP
PHP基础知识介绍
2013/09/17 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
javascript中常用编程知识
2013/04/08 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
封装的jquery翻页滚动(示例代码)
2013/11/18 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
AjaxUpLoad.js实现文件上传功能
2018/03/02 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
python实现redis三种cas事务操作
2017/12/19 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
python文件读取失败怎么处理
2020/06/23 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
自我鉴定 电子商务专业
2014/01/30 职场文书
一年级数学教学反思
2014/02/01 职场文书
yy婚礼主持词
2014/03/14 职场文书
学校社会实践活动总结
2014/07/03 职场文书
使用Canvas绘制一个游戏人物属性图
2022/03/25 Javascript
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server